- plot:折线图
- scatter:散点图
- histogram:直方图
- pie:饼图
- bar:柱状图
import matplotlib.pyplot as plt
import random
x=range(60)
y=[random.uniform(15,18) for i in x]
y2=[random.uniform(1,3) for i in x]
# 创建画布
plt.figure(figsize=(15,8))
# 绘制图像
plt.plot(x,y,color='red',linestyle='--',label='上海')
plt.plot(x,y2,color='yellow',label='北京')
# 辅助显示层显示图例
plt.legend(loc='upper left')
x_lable=["11点{}分".format(i) for i in x]
# 修改xy刻度
plt.xticks(x[::5],x_lable[::5])
plt.yticks(range(0,40,5))
# 添加网格显示
plt.grid(True,linestyle='--',alpha=0.5)
# 添加描述信息
plt.xlabel("时间变化",size=18)
plt.ylabel("温度变化",size=18)
plt.title("某城市11点到12点温度变化",size=22)
plt.show()
- figure表示画布,参数figsize表示画布大小长和宽,dpi表示参数
- plt.show()过后只出现<Figure size 640x480 with 3 Axes>而没有生成图片需要加上%matplotlib inline这段代码
- plot表示绘画,plt.plot(x,y)必须在plt.show()前面,画两个图线需要两个plot
- plt.xticks(x[::5],x_lable[::5])和plt.yticks(range(0,40,5))分别设置xy轴的刻度
- plt.grid(True,linestyle=’–’,alpha=0.5)其中第一个参数默认True,表示是否添加网格显示,第二份参数表示网格线条形状,第三个参数alpha表示透明度
- plt.xlabel()和plt.ylabel()表示给图x轴y轴添加说明
- plt.title()表示给图添加标题
- plt.legend(loc=‘upper left’)用来显示图例,不仅需要在辅助显示层调用,还需要在图像层的plot中添加label参数,loc参数表示图例显示的位置
创建多个绘图区
- plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=80)返回值是画布和绘图区,一行两列
- plt.函数名()相当于面向过程的画图方法 axes.set_方法名()相当于面向对象的画图方法
import matplotlib.pyplot as plt
import random
x=range(60)
y=[random.uniform(15,18) for i in x]
y2=[random.uniform(1,3) for i in x]
# 创建画布
# plt.figure(figsize=(15,8))
# 返回两个值,一个是画布,还有是绘图区
figure,axes=plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=80)
# 绘制图像
axes[0].plot(x,y,color='red',linestyle='--',label='上海')
axes[1].plot(x,y2,color='yellow',label='北京')
# 辅助显示层显示图例
axes[0].legend(loc='upper left')
axes[1].legend(loc='upper left')
x_lable=["11点{}分".format(i) for i in x]
# 修改xy刻度
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_lable[::5])
axes[0].set_yticks(range(0,40,5))
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_lable[::5])
axes[1].set_yticks(range(0,40,5))
# 添加网格显示
axes[0].grid(True,linestyle='--',alpha=0.5)
axes[1].grid(True,linestyle='--',alpha=0.5)
# 添加描述信息
axes[0].set_xlabel("时间变化",size=18)
axes[0].set_ylabel("温度变化",size=18)
axes[0].set_title("上海11点到12点温度变化",size=22)
axes[1].set_xlabel("时间变化",size=18)
axes[1].set_ylabel("温度变化",size=18)
axes[1].set_title("北京11点到12点温度变化",size=22)
plt.show()
柱状图
直方图
饼图
- plt.pie(x,lables=,autopct=,colors=)
- x:数量,自动算百分比
- lables:每部分名称
- autopct:占比显示指定%1.2%%
- colors:每部分颜色