Pyplot基础教程
程序员文章站
2022-03-21 17:05:44
...
Pyplot基础教程
matplotlib的pyplot子库提供了和matlab类似的绘图API
绘图基础
定义图像窗口
plt.figure() # 定义一个图像窗口
plt.show() # 显示图像
figure窗口
plt.figure(num=3, figsize=(8,5)) # 图像窗口,编号为3,大小为(8,5)
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--') # 设置线的颜色、宽度、类型
坐标轴
plt.xlim((-1,2)) # 设置x轴的范围
plt.ylim((-2,3)) # 设置y轴的范围
plt.xlabel('X') # 设置X坐标轴名称
plt.ylabel('Y') # 设置Y坐标轴名称
plt.xticks([1,2,3]) # 设置X轴的刻度
plt.yticks([1,2,3],['a','b','c']) # 设置Y轴的刻度和名称
Legend图例
plt.plot(x, y1, label='liner line') # 线的信息
plt.plot(x, y2, label='square line')
plt.legend(loc='upper right') # legend将显示的信息来自,代码中的label。
l1, = plt.plot(x, y1) # 用变量保存两条线,因为返回的是列表,要用参数后面要加,
l2, = plt.plot(x, y2)
plt.legend(handles=[l1, l2], labels=['up', 'down'], loc='best') # label设置线条名称,loc是标签位置,best自动分配最佳位置
x = np.linspace(-3, 3, 50)
y1 = 2 * x + 1
y2 = x ** 2
plt.figure()
l1, = plt.plot(x, y1)
l2, = plt.plot(x, y2, color='red', linewidth=1.0, linestyle='--')
plt.legend(handles=[l1, l2], labels=['up', 'down'], loc='best')
plt.xlim((-1, 2))
plt.ylim((-2, 5))
plt.xlabel('X')
plt.ylabel('Y')
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1, 0, 1, 3], ['a', 'b', 'c', 'd', 'e'])
plt.show()
设置坐标轴信息
ax = plt.gca() # 获取当前坐标轴信息
ax.spines['right].set_color('none') # 使用spines设置边框,右侧,set_color设置颜色,默认白色
ax.spines['top'].set_color('none') # 设置上边框
ax.xaxis.set_ticks_position('bottom') # 设置x坐标刻度数字或名称位置top、bottom、both、default、none
ax.spines['bottom'].set_position(('data', 0)) # 设置边框位置(属性outward、axes、data),y=0的位置
sin和cos
x = np.linspace(-np.pi, np.pi, 256, endpoint=True) # 左闭右开,endpoint为真保留最后一个。
C, S = np.cos(x), np.sin(x)
plt.plot(x, C)
plt.plot(x, S)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
指定绘图大小
指定图像编号和大小
plt.figure(1, figsize=(8, 6))
线的颜色、粗细和类型
plt.plot(x, C, color="blue", linewidth=4.0, linestyle="--", label="cos")
指定x坐标轴范围
plt.xlim(-4.0, 4.0)
设置y轴刻度间隔
plt.yticks(np.linspace(-1, 1, 15, endpoint=True))
图例位置
显示
plot
中的参数label
。
plt.legend(loc='upper left')
画多个图
代表图像共有几行,几列,和图的位置。如231将图分为6个位置,1代表第一个位置。
plt.subplot(1, 2, 1)
散点图
plt.scatter(x,y)
条形图
填充颜色为facecolor,边界颜色为edgecolor
plt.bar(X, Y, facecolor="red", edgecolor="blue" )
饼线图
传入一个序列
plt.figure(figsize=(8,8))
n = 20
Z = np.arange(10)
plt.pie(Z)
plt.show()
上一篇: java生成文件并上传本地文件至hdfs