在多个坐标系下绘制多个图像

IT廉连看

在多个坐标系下绘制多个图像

1.多个坐标系显示——plt.subplots(面向对象的画图方法)

如果我们想将北京和上海的天气图显示在同一个图的不同坐标系中,效果如下:

 在多个坐标系下绘制多个图像_第1张图片

 可以通过subplots函数实现(旧的版本中又subplot,使用起来不方便),推荐subplots函数

 matplotlib.pyplot.subplots(nrows=1,ncols=1,**fig_kw)创建一个带有多个axes(坐标系/绘图区)的图

Parameters:

nrows,ncols : 设置有几行几列坐标系
	int,optional,default: 1, Number of rows/columns of the subplot grid.
	
Returns:
fig : 图对象
axes : 返回相应数量的坐标系

设置标题等方法不同:
	set_xticks
	set_yticks
	set_xlabel
	set_ylabel

注意:plt.函数名()相当于面向过程的画图方法,axes.set_方法名()相当于面向对象的画图方法。

 示例具体代码如下:

 

# 0.准备坐标轴x,y轴坐标数据
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]

# 1.创建画布
# plt.figure(figsize = (20,8),dpi = 80)
fig, axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100)
#  nrows=1 一行   ncols=2两列

# 2.绘制图像
# plt.plot(x, y_shanghai,label="上海")
# plt.plot(x, y_beijing,color="r",linestyle="--",label = "北京")
axes[0].plot(x,y_shanghai,label="上海")
axes[1].plot(x,y_beijing,color="r",linestyle="--",label="北京")

# 2.1构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)

# 修改x,y轴坐标的刻度显示
# plt.xticks(x[::5],x_ticks_label[::5])
# plt.yticks(y_ticks[::5])
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
# axes[0].set_xticklabels(x_ticks_label[::5])有字符串,所以用到的是xticklabels
axes[0].set_xticklabels(x_ticks_label[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
# axes[0].set_xticklabels(x_ticks_label[::5])有字符串,所以用到的是xticklabels
axes[0].set_xticklabels(x_ticks_label[::5])

# 2.2添加网格显示
# plt.grid(True,linestyle="--",alpha=1)
axes[0].grid(True,linestyle="--",alpha=1)
axes[1].grid(True,linestyle="--",alpha=1)

# 2.3添加描述信息
# plt.xlabel("时间")
# plt.ylabel("温度")
# plt.title("中午11点到12点之间的温度变化图示",fontsize=30)
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_title("中午11点0分到12点之间的温度变化图示",fontsize=30)

axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_title("中午11点0分到12点之间的温度变化图示",fontsize=30)


# 2.4 图像保存
plt.savefig("./test.png")

# 2.5 显示图例
# plt.legend(loc="best")
axes[0].legend(loc = 0)
axes[1].legend(loc = 0)

# 3.图像显示
plt.show()

 

2、折线图的应用场景

  • 呈现公司产品(不同区域)每天活跃用户数

  • 呈现APP每天下载数量

  • 呈现产品新功能上线后,用户点击次数随时间的变化

  • 拓展:画各种数学函数图像

    • 注意:plt.plot()除了可以画折线图,也可以用于各种数学函数图像

在多个坐标系下绘制多个图像_第2张图片

代码:

import numpy as np
# 0.准备数据
	x = np.linspace(-10,10,1000)
	y = np.sin(x)
		linspace:生成空间(例:-10到10之间一千个数)
# 1. 创建画布
	plt.figure(figsize=(20,8),dpi=100)
# 2.绘制函数图像
	plt.plot(x,y)
# 2.1 添加网格显示
	plt.grid()
	
# 3.显示图像
	plt.show()

在多个坐标系下绘制多个图像_第3张图片

 ​IT廉连看

你可能感兴趣的:(python,开发语言,人工智能,机器学习,matplotlib)