Python matplotlib 颜色的应用
前言
matplotlib 模块功能非常强大,pyplot类为用户提供快速绘制折线、柱状、散点等常见图表的脚本方法。与此同时,matplotlib 依赖众多的底层渲染器如Agg对图像数据处理展示。
为了能够绘制更加美观的图像,我们都会使用到matplotlib 中颜色应用到图像中。
在前面的学习中,图表中颜色应用主要两种方式:
- 设置颜色填充属性关键字:如plot、bar、hist、pi、contour等都提供facecolor/color/cmap属性关键字
- 渲染numpy数据:使用imshow()/pcolor方法展示numpy数据渲染成图像
本期,我们将对matplotlib 模块中绘制颜色表、图表颜色应用相关方法属性进行学习,let's go~
1. imshow()绘制彩色表
-
imshow()方法概述
pyplot.imshow()是将numpy生成的数据渲染成2D图像
- imshow()将RGBA数据或者2D标量数据渲染成谓彩色图像
- imshow()可以通过cmap|vmin|vmax指定输出的颜色级别
-
imshow()方法绘制彩色表
- 导入matplotlib.pyplot库
- 调用numpy.random.randint()生成向量数据
- 调用pyplot.imshow()把数据渲染成图像
- 调用pylot.show()展示出图像
x = np.random.randint(1,100,size=(3,5)) plt.imshow(x) plt.show()
-
可以通过cmap、vmin、vmax更改渲染颜色级别
plt.imshow(x,cmap="hot",vmin=10,vmax=210)
-
可以调用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()
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()
-
pcolormesh()方法实操
x = np.random.rand(6,10) plt.pcolormesh(x,edgecolors="k") plt.colorbar() plt.show()
3. hline()、vline()绘制彩色线条
-
hline()、vline()方法概述
- pyplot.hline(y,xmin,xmax)方法绘制水平线
- pyplot.vline(x,ymin,ymax)方法绘制垂直线
-
hline()、vline()方法实操
- 调用pyplot.rcParams['axes.prop_cycle'].by_key()['color']获取Axes对象的颜色
- 调用pyplot.vline()、pyplot.hline()方法绘制垂直水平线
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()
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()
5. 图表颜色属性
-
颜色属性关键字
- cmap:RGBA颜色映射表,形式为"颜色映射表名_r"
- color: RGBA颜色元组或者列表
- facecolor:图形颜色
- edgecolor:图形边框颜色
- 颜色取值形式:
- 表示颜色的英文单词:如红色"red"
- 表示颜色单词的简称如:红色"r",黄色"y"
- RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式
- 可以转入颜色列表
-
常见图表颜色属性一览表
方法 图表名 cmap color facecolor edgecolor 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)
总结
本期,我们对matplotlib 模块中进行绘制图表时,颜色的应用相关方法和属性进行总结。如何将数据清晰的展示出来,图表中往往要借助颜色来帮助我们区分。
以上是本期内容,欢迎大佬们点赞评论,下期见~
转载自:https://juejin.cn/post/7035128531201818655