python matplotlib画折线图_python 使用matplotlib.pytplot.plot绘制 折线图

折线图绘制与保存图片

为了更好的去理解所有基础绘图功能,我们通过天气温度变化的绘图来融合所有的基础API使用

1、matplotlib.pyplot模块

matplotlib.pytplot包含了一系列类似于matlab的画图函数。 它的函数作用于当前图形(figure)的当前坐标系(axes)。

import matplotlib.pyplot as plt

2、折线图绘制与显示

展现上海一周的天气,比如从星期一到星期日的天气温度如下

plt.figure(figsize=(10, 10))

x= [1, 2, 3, 4, 5, 6 ,7] #周一到周末

y = [17,17,18,15,11,11,13] #对应的天气

plt.plot(x,y )

plt.show()

3、修改图形大小与图片保存

#语法介绍#plt.figure(figsize=(), dpi=)#figsize:指定图的长宽#dpi:图像的清晰度#返回fig对象#plt.savefig(path)

plt.figure(figsize=(20, 8), dpi=80)

plt.savefig("test.png")

三、温度变化显示

1、构造数据、显示

#画出温度变化图#创建一个figure

plt.figure(figsize=(20, 8), dpi=80)#准备x, y坐标的数据

x = range(60)

y_shanghai= [random.uniform(15, 18) for i inx]#画折线图

plt.plot(x, y_shanghai, label="上海")

plt.show()

2、自定义x,y刻度

plt.xticks(x, **kwargs)

x:要显示的刻度值

plt.yticks(y, **kwargs)

y:要显示的刻度值

#增加以下两行代码#构造中文列表的字符串

x_ch = ["11点{}分".format(i) for i inx]

y_ticks= range(40)#修改x,y坐标的刻度

plt.xticks(x[::5], x_ch[::5])

plt.yticks(y_ticks[::5])

3、增加标题、x轴y轴描述信息

plt.xlabel("时间")

plt.ylabel("温度")

plt.title("中午11点0分到12点之间的温度变化图示")

4、再添加一个城市的温度变化

#生成北京的温度

y_beijing = [random.uniform(1, 3) for i inx]#画折线图 1

plt.plot(x, y_shanghai, label="上海")#使用plot可以多次画多个折线

plt.plot(x, y_beijing, color='r', linestyle='--', label="北京")

5、添加注释

#添加图形注释

plt.legend(loc="best")

1472531-20200710211958654-2081688328.png

6、多个坐标系显示-plt.subplots

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

1472531-20200710212701572-1744557243.png

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

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

#Parameters:

#nrows, ncols : int, optional, default: 1, Number of rows/columns of the subplot grid.#**fig_kw : All additional keyword arguments are passed to the figure() call.

#Returns:#fig : 图对象#ax :

#设置标题等方法不同:

#set_xticks

#set_yticks

#set_xlabel

#set_ylabel

#画出温度变化图,展现在不同axes里面#创建一个figure

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80)#准备x, y坐标的数据

x = range(60)#y的刻度范围

y_ticks = range(40)

y_shanghai= [random.uniform(15, 18) for i inx]#生成北京的温度

y_beijing = [random.uniform(1, 3) for i inx]#构造中文列表的字符串

x_ch = ["11点{}分".format(i) for i inx]#画折线图

axes[0].plot(x, y_shanghai, label="上海")#使用plot可以多次画多个折线

axes[1].plot(x, y_beijing, color='r', linestyle='--', label="北京")#美化x,y的刻度值#第一个参数必须是刻度数字类型,第二个是对应着第一个数字的中文描述

axes[0].set_xticks(x[::5], x_ch[::5])

axes[0].set_yticks(y_ticks[::5])

axes[1].set_xticks(x[::5], x_ch[::5])

axes[1].set_yticks(y_ticks[::5])#增加x,y描述信息和标题信息

axes[0].set_xlabel("时间")

axes[0].set_ylabel("温度")

axes[1].set_xlabel("时间")

axes[1].set_ylabel("温度")

axes[0].set_title("中午11点0分到12点之间的温度变化图示")

axes[1].set_title("中午11点0分到12点之间的温度变化图示")

axes[0].legend(loc="best")

axes[1].legend(loc="best")

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值