4.在一个坐标下绘制多个图形
import matplotlib.pyplot as plt
import random
from pylab import mpl
#设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
#设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
#0.准备X,Y坐标的数据
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]#生成60个15-18之间的浮点数
y_beijing = [random.uniform(1,3) for i in x]#多个y轴的数
#1.创建画布
plt.figure(figsize=(20,8),dpi=100) #figsize,设置图像大小比例为20:8,dpi,图像的清晰度
#2.绘制图像
plt.plot(x,y_shanghai,label="上海") #此处的plot可以理解为画折线图
plt.plot(x,y_beijing,color = "r",linestyle="--",label="北京") #此处的plot可以理解为画折线图
#表1会对参数linestyle与color进行介绍
#2.1添加x,y轴刻度
#构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
#刻度显示
plt.xticks(x[::5],x_ticks_label[::5]) #必须先有数再贴标签,也就是说
plt.yticks(y_ticks[::5]) #此处的
#2.2添加网格显示
plt.grid(True,linestyle="--",alpha=0.5)#True:添加网格线,linestyle:网格线类型,alpha:线条透明度,0为全透明,1为实线
#2.3添加描述信息
plt.xlabel("时间")
plt.ylabel("温度",fontsize=20)
plt.title("中午11点--12点某城市温度变化图",fontsize=20)#fontsize,设置字体大小
#2.4 图像保存
plt.savefig("./test.png")
#2.5添加图例
plt.legend(loc=0)
#表2会对loc的参数取值进行介绍
#3.图像显示
plt.show()
- color中的color参数/linestyle参数
颜色字符 |
- 实线 |
r 红色 |
-- 虚线 |
g 绿色 |
-. 点划线 |
b 蓝色 |
: 点虚线 |
w 白色 |
' ' 留空、空格 |
c 青色 |
|
m 洋红 |
|
y 黄色 |
|
k 黑色 |
|
location string |
location code |
best 自动选择最合适的位置 |
0 |
upper right 上边偏右 |
1 |
upper left 上边偏左 |
2 |
lower right 下边偏右 |
3 |
lower left 下边偏左 |
4 |
right 右边 |
5 |
center left 中间靠左 |
6 |
center light 中间靠右 |
7 |
lower center 中间靠下 |
8 |
upper center 中间靠上 |
9 |
center 中间 |
10 |
|
|
5.多个坐标系实线绘图
import matplotlib.pyplot as plt
import random
from pylab import mpl
#设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
#设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
#0.准备X,Y坐标的数据
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]#生成60个15-18之间的浮点数
y_beijing = [random.uniform(1,3) for i in x]#多个y轴的数
#1.创建画布
# plt.figure(figsize=(20,8),dpi=100) #figsize,设置图像大小比例为20:8,dpi,图像的清晰度
fig,axes = plt.subplots(nrows = 1,ncols = 2,figsize=(20,8),dpi=100)
#设置1行2列的数据,分别用fig与axes两个参数承接
#2.绘制图像
axes[0].plot(x,y_shanghai,label="上海",linestyle="-.") #此处的plot可以理解为画折线图
axes[1].plot(x,y_beijing,color = "y",linestyle="--",label="北京") #此处的plot可以理解为画折线图
#表1会对参数linestyle与color进行介绍
#2.1添加x,y轴刻度
#构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
#刻度显示
axes[0].set_xticks(x[::5]) #必须先有数再贴标签,也就是说
axes[0].set_yticks(y_ticks[::5]) #此处的
axes[0].set_xticklabels(x_ticks_label[::5]) #注意此处和原始设置的区别,必须另起一行,单独进行声明
axes[1].set_xticks(x[::5]) #必须先有数再贴标签,也就是说
axes[1].set_yticks(y_ticks[::5]) #此处的
axes[1].set_xticklabels(x_ticks_label[::5]) #此处的
#2.2添加网格显示
axes[0].grid(True,linestyle="--",alpha=0.5)
axes[1].grid(True,linestyle="--",alpha=0.5)
#2.3添加描述信息
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度",fontsize=20)
axes[0].set_title("中午11点--12点某城市温度变化图",fontsize=20)#fontsize,设置字体大小
#2.4 图像保存
plt.savefig("./test.png")
#2.5添加图例
axes[0].legend(loc="center")
axes[1].legend(loc="center")
#表2会对loc的参数取值进行介绍
#3.图像显示
plt.show()