matplotlib2(同坐标多图形/多个坐标系实线绘图)

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 黑色
  • plt.legend中loc参数
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()

posted @ 2023-02-10 17:18  小杨的冥想课  阅读(167)  评论(0编辑  收藏  举报