目录
- 画线
- 画点
- 散点
- 画点的形状、线的形状
- 画点线
- 在特定位置写文字
- plt.legend()中图例的位置
- 方法一 plt.legend(loc=4)
- 方法二 plt.legend(bbox_to_anchor=(num1, num2))
- 方法三 bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0
- 保存图片
- 指定图片大小
- 网格线
根据自己的需求做了一个画图的总结
说明:有些是从别人的博客上摘抄的,都有注明
画线
import matplotlib.pyplot as plt # 通用引用
N = [2,4,6,8,12,16,20,24,28,32,36,40,48,56,64,72,80,128]
acc = [48.63,73.43,86.74,88.99,90.23,94.54,92.91,96.05,95.60,96.89,96.04,96.88,97.67,97.63,98.11,98.24,98.34,98.56,]
plt.plot(N,acc,label='test')
plt.legend(loc=4)
plt.title('SNR & Accuracy')
plt.xlabel("SNR")
plt.ylabel("Acc(%)")
plt.show()
画点
N = [2,4,6,8,12,16,20,24,28,32,36,40,48,56,64,72,80,128]
acc = [48.63,73.43,86.74,88.99,90.23,94.54,92.91,96.05,95.60,96.89,96.04,96.88,97.67,97.63,98.11,98.24,98.34,98.56,]
plt.plot(N,acc,'o',label='test')
plt.legend(loc=4)
plt.title('SNR & Accuracy')
plt.xlabel("SNR")
plt.ylabel("Acc(%)")
plt.show()
散点
plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
x,y组成了散点的坐标;s为散点的面积;c为散点的颜色(默认为蓝色'b');marker为散点的标记;alpha为散点的透明度(0与1之间的数,0为完全透明,1为完全不透明);linewidths为散点边缘的线宽;如果marker为None,则使用verts的值构建散点标记;edgecolors为散点边缘颜色。
画点的形状、线的形状
‘.’:点(point marker)
‘,’:像素点(pixel marker)
‘o’:圆形(circle marker)
‘v’:朝下三角形(triangle_down marker)
‘^’:朝上三角形(triangle_up marker)
‘<‘:朝左三角形(triangle_left marker)
‘>’:朝右三角形(triangle_right marker)
‘1’:(tri_down marker)
‘2’:(tri_up marker)
‘3’:(tri_left marker)
‘4’:(tri_right marker)
‘s’:正方形(square marker)
‘p’:五边星(pentagon marker)
‘*’:星型(star marker)
‘h’:1号六角形(hexagon1 marker)
‘H’:2号六角形(hexagon2 marker)
‘+’:+号标记(plus marker)
‘x’:x号标记(x marker)
‘D’:菱形(diamond marker)
‘d’:小型菱形(thin_diamond marker)
‘|’:垂直线形(vline marker)
‘_’:水平线形(hline marker)
画点线
N = [2,4,6,8,12,16,20,24,28,32,36,40,48,56,64,72,80,128]
acc = [48.63,73.43,86.74,88.99,90.23,94.54,92.91,96.05,95.60,96.89,96.04,96.88,97.67,97.63,98.11,98.24,98.34,98.56,]
# plot(x,y,'颜色+点的形状+线的形状',label='图例')
plt.plot(N,acc,'bo-',label='test')
plt.legend(bbox_to_anchor=(0.95,0.15)) # 图例,bbox_to_anchor(num1, num2)是图例和图的相对位置
plt.title('SNR & Accuracy') # 标题
plt.xlabel("SNR") # x轴
plt.ylabel("Acc(%)") # y轴
plt.show()
直接写点的颜色有
字母 | 颜色 |
---|---|
r | 红色 |
g | 绿色 |
b | 蓝色 |
y | 黄色 |
c | 青色 |
k | 黑色 |
m | 品红 |
更多颜色
plt.plot(x, y, color='coral')
在特定位置写文字
plt.plot(12,80.16,'ro',) # 点
plt.plot(12,70.35,'ro',) # 点
plt.text(12.05,80.16, 'SNR=10', fontsize=10, color = "r", style = "italic", weight = "light", verticalalignment='center', horizontalalignment='left',rotation=0) #给散点加标签
plt.text(12.05,70.35, 'SNR=0', fontsize=10, color = "r", style = "italic", weight = "light", verticalalignment='center', horizontalalignment='left',rotation=0) #给散点加标签
plt.xlabel("SNR")
plt.ylabel("Acc(%)")
plt.show()
plt.legend()中图例的位置
方法一 plt.legend(loc=4)
方法二 plt.legend(bbox_to_anchor=(num1, num2))
bbox_to_anchor(num1, num2)是图例和图的相对位置
方法三 bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0
loc表示legend的方框的哪个点在bbox_to_anchor上。borderaxespad表示是否需要填充,一般设置为0。
保存图片
plt.savefig('./test.png')
指定图片大小
plt.figure(figsize=(12,6),dpi=100) # 指定画布大小(长、宽),指定分辨率为100,变清晰好多
网格线
plt.grid() # 生成网格
参考
https://blog.csdn.net/my_name_is_learn/article/details/121015104
https://blog.csdn.net/hesongzefairy/article/details/113527780