阅读 304

Python matplotlib 颜色的应用

前言

matplotlib 模块功能非常强大,pyplot类为用户提供快速绘制折线、柱状、散点等常见图表的脚本方法。与此同时,matplotlib 依赖众多的底层渲染器如Agg对图像数据处理展示。

为了能够绘制更加美观的图像,我们都会使用到matplotlib 中颜色应用到图像中。

在前面的学习中,图表中颜色应用主要两种方式:

  • 设置颜色填充属性关键字:如plot、bar、hist、pi、contour等都提供facecolor/color/cmap属性关键字

  • 渲染numpy数据:使用imshow()/pcolor方法展示numpy数据渲染成图像

color.png

本期,我们将对matplotlib 模块中绘制颜色表、图表颜色应用相关方法属性进行学习,let's go~

1. imshow()绘制彩色表

  • imshow()方法概述

    pyplot.imshow()是将numpy生成的数据渲染成2D图像

    • imshow()将RGBA数据或者2D标量数据渲染成谓彩色图像

    • imshow()可以通过cmap|vmin|vmax指定输出的颜色级别

  • imshow()方法绘制彩色表

    x = np.random.randint(1,100,size=(3,5)) plt.imshow(x) plt.show() 复制代码

    image.png

    • 导入matplotlib.pyplot库

    • 调用numpy.random.randint()生成向量数据

    • 调用pyplot.imshow()把数据渲染成图像

    • 调用pylot.show()展示出图像

  • 可以通过cmap、vmin、vmax更改渲染颜色级别

     plt.imshow(x,cmap="hot",vmin=10,vmax=210) 复制代码

    image.png

  • 可以调用text()方法填充每个颜色文本

    fig,ax = plt.subplots() x = np.random.randint(1,100,size=(7,7)) ax.imshow(x,cmap="magma_r") for i in range(7):     for j in range(7):         text = ax.text(j,i,x[i,j],ha="center",va="center",color="w") plt.show() 复制代码

    image.png

2. pcolormesh()绘制彩色表

  • pcolor()方法概述

    • pcolor()方法使用四边形创建非常规的彩色网格

    • pcolor()方法对于大型矩阵,渲染的速度会很慢

    • pcolor()方法仅支持对x,y的掩码进行处理

  • pcolormesh()方法概述

    • pcolormesh()方法使用四方形创建彩色网格

    • pcolormesh()方法适用于大型的矩阵数据

    • pcolormesh()方法将遮罩元素的facecolor设置为透明,可以使用边缘颜色看到差异

  • pcolor()方法实操

    x = np.random.rand(6,10) plt.pcolor(x) plt.colorbar() plt.show() 复制代码

    image.png

  • pcolormesh()方法实操

    x = np.random.rand(6,10) plt.pcolormesh(x,edgecolors="k") plt.colorbar() plt.show() 复制代码

    image.png

3. hline()、vline()绘制彩色线条

  • hline()、vline()方法概述

    • pyplot.hline(y,xmin,xmax)方法绘制水平线

    • pyplot.vline(x,ymin,ymax)方法绘制垂直线

  • hline()、vline()方法实操

    prop_cycle = plt.rcParams['axes.prop_cycle'] colors = prop_cycle.by_key()['color'] for i,color in enumerate(colors):     plt.vlines(i,0,10,color=color)     plt.hlines(i,0,10,color=color) plt.show() 复制代码

    image.png

    • 调用pyplot.rcParams['axes.prop_cycle'].by_key()['color']获取Axes对象的颜色

    • 调用pyplot.vline()、pyplot.hline()方法绘制垂直水平线

4. colorbar 绘制颜色条

  • colorbar()方法概述

    • pylot.colorbar将颜色条添加到图表中

    • colorbar可应用在scatter、contour、imshow、pcolormesh中

    • colorbar 在图表中默认是垂直显示,可以通过orientation设置水平

  • colorbar()方法实操

    data = np.arange(100).reshape(10,10) im = plt.imshow(data) plt.colorbar(im,orientation="horizontal") plt.show() 复制代码

    image.png

5. 图表颜色属性

  • 颜色属性关键字

    • 表示颜色的英文单词:如红色"red"

    • 表示颜色单词的简称如:红色"r",黄色"y"

    • RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式

    • 可以转入颜色列表

    • cmap:RGBA颜色映射表,形式为"颜色映射表名_r"

    • color: RGBA颜色元组或者列表

    • facecolor:图形颜色

    • edgecolor:图形边框颜色

    • 颜色取值形式:

  • 常见图表颜色属性一览表

    方法图表名cmapcolorfacecoloredgecolor
    pyplot.hist()直方图××
    pyplot.plot()折线图×××
    pyplot.bar()柱状图×
    pyplot.pie()饼图×√(colors)×
    pyplot.scatter()散点图√ (c)×√(edgecolors)
    pyplot.contour()等高线图√(colors)××
    pyplot.boxplot()箱型图××××
    pyplot.violinplot()提琴图××××
    pyplot.imshow()展示dta为图像×××
    pyplot.pcolor()颜色网格√(edgecolors)

总结

 伪原创工具 SEO网站优化  https://www.237it.com/ 

本期,我们对matplotlib 模块中进行绘制图表时,颜色的应用相关方法和属性进行总结。如何将数据清晰的展示出来,图表中往往要借助颜色来帮助我们区分。


作者:盆友圈的小可爱
链接:https://juejin.cn/post/7035128531201818655


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐