↑ 关注 + 星标 ~ 有趣的不像个技术号
每晚九点,我们准时相约
大家好,我是黄同学
我们之前已经讲述了matplotlib的绘图原理,陆续会更新绘图技巧、相关图形绘制。
《matplotlib绘图的核心原理》
《matplotlib绘图技巧详解(一)》
1、颜色、点标记与线型设置
1)常用的参数名:小括号中都是简写
- color©:线条颜色。
- linestyle(ls):线条形状。
- linewidth(lw):线宽。
- marker:点标记形状。
- markersize(ms):点标记的大小。
- markeredgecolor(mec):点边缘颜色。
- markeredgewidth(mew):点边缘宽度。
- markerfacecolor(mfc):点的颜色。
① 举例如下
plt.plot([1, 2, 3, 4], [5, 6, 7, 8], c="g", ls="--", lw=2,
marker="o", ms=8, mec="g", mew=5, mfc="r")
复制
结果如下:

2)颜色、点标记与线型可以使用一个参数设置
① 格式
格式:颜色点标记样式线条样式
注意:这三者之间不需要添加任何其他东西;
举例:ro–
② 常用颜色、点标记和线型
颜色:蓝色"b" 绿色"g" 红色"r" 青色"c" 品红"m" 黄色"y" 黑色"k" 白色"w"
点标记:点"." 像素"," 圆"o" 方形"s" 三角形"^"
线型:直线"-" 虚线"–" 点线":" 点画线"-."
举例如下:
plt.plot([1,2,3,4,5], [2,4,6,8,10], "m^:")
复制
结果如下:
3)颜色、线条样式和点标记大全
① 颜色大全
② 线条样式大全
- ‘-’ 直线
- ‘–’ 虚线
- ‘-.’ 点画线
- ‘:’ 点线
③ 点标记大全
2、透明度设置
1)说明
在绘制图像时,我们可以通过alpha参数来控制图像的透明度,值在0 ~ 1之间。0为完全透明,1为不透明。
2)举例说明
plt.plot([1,3,5,7],[4,9,6,8],marker="s",alpha=0.2)
plt.plot([1,2,3,4,5], [2,4,6,8,10],marker="o",alpha=0.5)
复制
结果如下:
3、图例设置
1)图例作用
在绘制多条线时,可以设置图例来标注每条线所代表的含义,使图形更加清晰易懂。关于图例设置可以参考如下文章:https://blog.csdn.net/chichoxian/article/details/101058046
2)plt.legend()设置图例的2种方式
① legend函数中的常用参数
- loc:指定图例的位置。默认为best。也可以指定坐标(元组),基于图像左下角计算。
- title:设置图例的标题。
- ncol:图例显示的列数,默认为1列。
- frameon:设置是否显示图例的边框。True(默认值)显示,False不显示。
例如:plt.legend(loc=(1,0.9))传入一个指定坐标,调整图例的位置,以免图例覆盖了图形。
② 调用plt的legend函数,传递一个标签数组,指定每次plot图形的标签
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4,5], [2,4,6,8,10],"gs-.")
plt.legend(["2016年","2017年"],loc="best")
复制
结果如下:
③ 在绘制的时候通过label参数指定图例中显示的名称,然后调用legend函数生成图例
plt.plot([1,3,5,7],[4,9,6,8],"ro--",label="2016年")
plt.plot([1,2,3,4,5], [2,4,6,8,10],"gs-.",label="2017年")
plt.legend(loc="upper right")
复制
结果如下:
3)legend函数常用参数的详细说明
- loc:指定图例的位置。默认为best。也可以指定坐标(元组),基于图像左下角计算。
- title:设置图例的标题。
- ncol:图例显示的列数,默认为1列。
- frameon:设置是否显示图例的边框。True(默认值)显示,False不显示。
① loc参数:设置图例的摆放位置
该参数用于指定图例的摆放位置。默认是best,还有upper、down、left和right。一共有四种组合形式"upper left"、“upper right”、“down left"和"down right”。也可以为该参数指定一个坐标"元组",坐标的值是基于当前坐标原点的比例。
举例如下:
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4,5], [2,4,6,8,10],"gs-.")
plt.legend(["2016年","2017年"],loc=(0.5,0.8))
复制
结果如下:
② title参数:为图例设置标题
举例如下:
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4], [2,4,6,8],"gs-.")
plt.legend(["2016年","2017年"],loc="best",title="图例的标题")
plt.title("2016-2017年各季度销售额对比图")
复制
结果如下:
③ ncol参数:图例显示的列数
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4], [2,4,6,8],"gs-.")
plt.legend(["2016年","2017年"],loc="best",ncol=2)
复制
结果如下:
④ frameon参数:设置是否显示图例的边框
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4], [2,4,6,8],"gs-.")
plt.legend(["2016年","2017年"],loc="best",ncol=2,frameon=False)
复制
结果如下:
4、网格设置
可以通过plt的grid方法来设置是否显示网格。True为显示,False不显示。
语法参数:
- ax.grid(color=, linestyle=, linewidth=)
- color:设置网格线颜色。
- axis:设置网格线显示x,y或者全部显示(x,y,both)。
- linestyle:设置网格线形状。
- linewidth:设置网格线宽度。
举例如下:
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.grid(True,c="g",ls="-",lw=5)
复制
结果如下:
未完待续,matplotlib绘图技巧详解更新ing...