前言
对于普通用户,使用一次性画图能很快的学习、完成一般场景下作图。
下面是两个简单的例子:
一次性作图
import matplotlib.pyplot as plt
plt.bar(['a','b','c','d','e'], [20,30,10,50,40], color=['b','c','g','k','m'], alpha = .7)
plt.show()
面向对象作图
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1 = plt.bar(['a','b','c','d','e'], [20,30,10,50,40], color=['b','c','g','k','m'], alpha = .7)
fig.show()
结论
面向对象作图会显得复杂一些,做出来的图也不太尽人意,当然图是可以调整的。对于普通用户,我推荐使用一次性画图。
作图基本步骤
1.获得数据、确定作图类型
2.作图
3.调整图(加标签,调大小,调标度… (调整图的函数基本通用)
4.显示图、保存图
图类型:
折线图plot、散点图scatter、直方图hist、柱状图bar、饼状图pie、颜色图colorbar
通用调整函数:plt.function
用法见实例
function | 说明 | 备用栏 |
---|---|---|
figure(figsize=[w,h]) | 调整图像大小,此函数必须放在作图函数前 | w:宽度、h:高度 |
title(‘title’) | 设置图的标题 | title可改为任意字符,中文显示不了 |
xlabel(str, fontsize, color) | 设置x轴的标签 | str:x轴标签、fontsize:字体大小、color:颜色 |
ylabel(str, fontsize, color) | 设置y轴的标签 | str:y轴标签、fontsize:字体大小、color:颜色 |
xlim(min, max) | 设置x轴的范围 | min:最小值、max:最大值 |
ylim(min, max) | 设置y轴的范围 | min:最小值、max:最大值 |
axis(‘off’) | 隐藏坐标轴 | none |
xticks([], rotation = 45) | 隐藏x坐标刻度,旋转x坐标刻度45度 | []为空列表就是隐藏的意思、rotation:旋转角度 |
xticks([], rotation = 45) | 隐藏y坐标刻度,旋转y坐标刻度45度 | []为空列表就是隐藏的意思、rotation:旋转角度 |
grid(True) | 显示网格 | none |
xscale(‘linear|log|symlog|logit’) | 设置x刻度数字的显示方式 | 任意填一个就行 |
yscale(‘linear|log|symlog|logit’) | 设置y刻度数字的显示方式 | 任意填一个就行 |
axhline(y) | 在y=y处画一条线 | none |
axvline(y) | 在x=x处画一条线 | none |
legend(loc = ‘best|[upper] left |right’) | 显示标识 | best自动调整、left左边显示、right右边显示、upper left不记得什么意思了 |
各图类型作图实例:
折线图1_plot
默认:
调整后:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,21,1) ##产生随机数据
y = np.random.randint(1,50,20) ##产生随机数据
#plt.figure(figsize=[8,4]) ##调整图的大小
plt.plot(x,y,label='add_label') ##基本步骤:作图
#plt.title("plot") ##添加标题
#plt.xlabel('x_axis',fontsize=20,color='c') ##添加x轴信息
#plt.ylabel('y_axis',fontsize=10,color='g') ##添加y轴信息
#plt.xlim(0, 20) ##设置x轴范围
#plt.ylim(-10, 55) ##设置y轴范围
##plt.axis('off') ##不显示坐标轴
#plt.xticks(rotation = 45) ##x坐标轴刻度标签旋转45度
#plt.yticks(rotation = -45) ##y坐标轴刻度标签旋转45度
#plt.grid(True) ##显示网格
#plt.xscale('linear') ##设置x坐标轴刻度数的显示形式
#plt.yscale('linear') ##设置y坐标轴刻度数的显示形式
#plt.axhline(20) ##画水平线
#plt.axvline(10) ##画垂直线
#plt.legend(loc = 'best') ##自动找到最佳位置显示线标识
plt.show() ##显示图片
折线图2_plot(plot也可以画出散点图)
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,21,1)
y = np.random.randint(1,50,20)
plt.plot(x,y,'*') ##设置样式为*状
plt.show()
折线图3_plot
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,21,1)
y1 = np.random.randint(1,50,20)
y2 = np.random.randint(1,50,20)
plt.plot(x,y1,'-',x,y2,'--') ##plot可以同时画多组线,最好还是分开画(用两次plot)
#plt.plot(x,y1,'-')
#plt.plot(x,y2,'--')
plt.show