Skip to content

Pyplot

约 679 个字 20 行代码 2 张图片 预计阅读时间 4 分钟

绘制x和y点

plot()函数默认从点到点绘制一条直线,参数1是包含x轴上的点的数组,参数2是包含y轴上的点的数组。

比如我们想绘制(1,3)->(8,10)的线,就要传入[1,8]和[3,10]。

如果只想绘制标记点而不绘制直线,可以传入参数'o'
plt.plot(xpoints, ypoints,'o')

如果我们不指定x轴上的点,它们将获得默认值0,1,2,3,...(取决于y的长度)

标记

线段的端点用marker做标记,显式的传入marker='*'ormarker='o'

plt.plot(xpoints, ypoints,marker='o') 注意与上述只绘制点的区别

原因:fmt='o' 这个简写字符串已经隐含了
marker='o' 且 linestyle='None',
所以你看到的是 纯散点。
marker='o' 只设置了 marker,没动 linestyle,
于是默认的 linestyle='-' 仍然有效,
结果 marker 之间被直线连起来了。
test

格式化字符串传参: fmt='color|marker|line

分类 字符 效果
颜色 (color) b blue 蓝色
g green 绿色
r red 红色
c cyan 青色
m magenta 洋红
y yellow 黄色
k black 黑色
w white 白色
标记 (marker) . 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 hexagon1 marker
H hexagon2 marker
+ plus marker
x x marker
D diamond marker
d thin_diamond marker
&#124; vertical line marker
_ horizontal line marker
线型 (line) - solid line 实线
-- dashed line 虚线
-. dash-dot line 点划线
: dotted line 点线
None / ' ' / '' 无线段

marker相关参数:

  • ms(markersize)
  • mec(markeredgecolor): marker边缘颜色
  • mfc(markerfacecolor): marker内部颜色

设置中文字体: matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

标签

xlabel()ylabel()设置横纵坐标的标签

title()设置标题

设置字体:

Python
   font1 = {'family':'serif','color':'blue','size':20}
   font2 = {'family':'serif','color':'red','size':50}

   plt.title("运动健康数据",fontdict=font1)
   plt.xlabel("平均脉搏",fontdict=font2)
   plt.ylabel("卡路里消耗量",fontdict=font2)

   plt.plot(x,y)
   plt.show()

loc()参数表明标题位置 left,right,center

网格

plt.grid() 绘制x,y网格

plt.grid(axis='x') 绘制x的网格(平行于y轴)

color,linestyle,linewidth

多图

在绘制之前设置plt.subplot(row,col,index),row,col表示这个图像一共有row行,col列,当前子图是第index个(0-base)。index计数:从左到右,从上到下。

title()为每个子图设置标题

suptitle()为整张图片设置标题

散点图

plt.scatter()

color=为整体上色

colors = ["red","blue","..."]此时是为每个点上色(按照传入的顺序),注意此时只能用c=传参

颜色图: cmap + plt.colorbar()

比方说使用viridis,从0(紫色)到100(黄色)

Python
x=np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y=np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors=np.array([0,10,20,30,40,45,50,55,60,70,80,90,100])
plt.scatter(x,y, c=colors, cmap='viridis')
plt.colorbar()
plt.show()

cmap

s: 点的大小

alpha: 透明度

柱状图

bar()绘制垂直柱状图,width()条宽

barh()绘制水平柱状图,height()条高

直方图

hist()

饼图

pie()

labels=接受标签

startangle=起始角度,默认是0,可以是从\([a, b)\)中改变

explode让其中一个楔子脱颖而出

shadow=True添加阴影

legend()添加图例
legend(title="xxx")