使用matplotlib画图 + python色彩大全

目录

  • 画线
  • 画点
    • 散点
    • 画点的形状、线的形状
  • 画点线
  • 在特定位置写文字
  • plt.legend()中图例的位置
    • 方法一 plt.legend(loc=4)
    • 方法二 plt.legend(bbox_to_anchor=(num1, num2))
    • 方法三 bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0
  • 保存图片
  • 指定图片大小
  • 网格线

根据自己的需求做了一个画图的总结
说明:有些是从别人的博客上摘抄的,都有注明

画线

使用matplotlib画图 + python色彩大全_第1张图片

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()

画点

使用matplotlib画图 + python色彩大全_第2张图片

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为散点的透明度(01之间的数,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)

使用matplotlib画图 + python色彩大全_第3张图片

画点线

使用matplotlib画图 + python色彩大全_第4张图片

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')

使用matplotlib画图 + python色彩大全_第5张图片

在特定位置写文字

使用matplotlib画图 + python色彩大全_第6张图片

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)

使用matplotlib画图 + python色彩大全_第7张图片

方法二 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

你可能感兴趣的:(python,matplotlib,开发语言)