基本绘图

每个红色的点是坐标,把5个点的坐标连接成一条线,组成了一个折线图
from matplotlib import pyplot as plt
# 数据在x轴的位置
x=range(2,26,2)
# 数据在y轴的位置
y=range(1,25,2)
plt.plot(x,y)
plt.show()
常用方法
设置图片大小figsize、分辨率dpi
plt.figure(figsize=(20,8),dpi=80)
保存图片savefig
plt.savefig(’./zxt.png’)
设置x的刻度xticks ,当刻度太密集使用列表的间隔取值来解决
labels参数传入的列表与x一一对应
rotation让字符串旋转xx°展示
plt.xticks(x,labels=xtick_lablels,rotation=45)
plt.xticks(x[::3],labels=xtick_lablels[::3],rotation=45)
给图像添加描述信息xlabel、ylabel、title

自定义绘制图形的风格


添加图例

常用统计图
对比

折线图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
x=range(0,120)
y1=[random.randint(20,35) for i in range(0,120)]
y2=[random.randint(20,35) for i in range(0,120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y1,label='自己',color='red',linestyle='--',linewidth=2,alpha=0.5)
plt.plot(x,y2,label='同桌',color='blue',linestyle='-',linewidth=2,alpha=0.5)
_x=list(x)[::3]
_xtick_lablels=["10点{}分".format(i) for i in range(0,60)]
_xtick_lablels+=["11点{}分".format(i) for i in range(0,60)]
plt.xticks(_x,labels=_xtick_lablels[::3],rotation=45)
plt.yticks(range(min(y1),max(y1)+1))
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
plt.legend(loc=0)
plt.grid(alpha=0.4)
plt.savefig('./zxt.png')
plt.show()
散点图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
x_3=range(1,32)
x_10=range(51,82)
y_3=[random.randint(20,35) for i in range(31)]
y_10=[random.randint(20,35) for i in range(31)]
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(x_3,y_3,label='3月份')
plt.scatter(x_10,y_10,label='10月份')
_x=list(x_3)+list(x_10)
_xtick_lablels=["3月{}日".format(i) for i in x_3 ]
_xtick_lablels+=["10点{}分".format(i) for i in x_10]
plt.xticks(_x[::3],labels=_xtick_lablels[::3],rotation=45)
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
plt.legend(loc=0)
plt.grid(alpha=0.4)
plt.savefig('./zxt.png')
plt.show()
条形图
纵向
from matplotlib import pyplot as plt
from matplotlib import rc
import random
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
a=['美国','中国','印度','俄罗斯','缅甸','韩国','日本','英国','法国','菲律宾']
b_15=[random.randint(100,500) for i in range(10)]
b_16=[random.randint(100,500) for i in range(10)]
b_17=[random.randint(100,500) for i in range(10)]
plt.figure(figsize=(20,8),dpi=80)
bar_width=0.2
x_15=list(range(len(a)))
x_16=[ i+bar_width*1 for i in x_15]
x_17=[ i+bar_width*2 for i in x_15]
plt.bar(x_15,b_15,width=bar_width,label='3月15日')
plt.bar(x_16,b_16,width=bar_width,label='3月16日')
plt.bar(x_17,b_17,width=bar_width,label='3月17日')
plt.xticks(x_15,a,rotation=45)
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
plt.legend(loc=0)
plt.grid(alpha=0.4)
plt.savefig('./zxt.png')
plt.show()
横向
from matplotlib import pyplot as plt
from matplotlib import rc
import random
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
a=['美国','中国','印度','俄罗斯','缅甸','韩国','日本','英国','法国','菲律宾']
b=[random.randint(100,1000) for i in range(10)]
plt.figure(figsize=(20,8),dpi=80)
plt.barh(range(len(a)),b,height=0.3,color='orange')
plt.yticks(range(len(a)),a,rotation=45)
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
plt.legend(loc=0)
plt.grid(alpha=0.4)
plt.savefig('./zxt.png')
plt.show()
直方图
没有经过统计的数据,可以绘制直方图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
a=[random.randint(60,200) for i in range(250)]
plt.figure(figsize=(20,8),dpi=80)
d=3
num_bins=max(a)-min(a)//d
plt.hist(a,num_bins)
plt.xticks(range(min(a),max(a)+d,d))
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
plt.legend(loc=0)
plt.grid(alpha=0.4)
plt.savefig('./zxt.png')
plt.show()
版权声明:本文为m0_49119161原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。