python数据分析-matplotlib可视化

1.绘制一天内温度的折线图

1.1 折线图基础绘制

一天之内的温度从凌晨2点开始,每隔2小时测量一次温度,12次温度数据为

y = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]

现在需要将温度作为纵坐标,时间作为横坐标,绘制折线图
首先需要生成横坐标,这里可以通过实现,实际就是从2开始,一直到24

x = range(2, 25, 2)

可以简单看一下里面的数据

for x in range(2, 25,2):
    print(x)

在这里插入图片描述
通过plot可以确认横坐标和纵坐标,show进行展示

# 绘图
plt.plot(x, y)#这里x和y的数量需要是相等的

# 展示图形
plt.show()

输出的结果就是一张图
在这里插入图片描述

1.2 调整大小分辨率

展示的图片可以进行大小、分辨率的修改以及进行保存,通过figsize设置长宽,dpi设置分辨率

# 设置图片大小
plt.figure(figsize=(20, 8),dpi=80)

加上这一段后,再生成结果就会发现图片的大小发生了改变
在这里插入图片描述

1.3 图片保存

如果需要对这张图片进行保存,可以加一句

# 保存图片
plt.savefig('./1.1matplotlib基础绘图.png')  # 保存为svg矢量图可以避免放大后产生锯齿

执行后就会在当前文件夹里生成一张图片
在这里插入图片描述

1.4 修改坐标轴刻度

如果要修改x轴的刻度,可以通过将x的值作为刻度

# 设置x轴的刻度
plt.xticks(x)

这样跑出来的结果就是
在这里插入图片描述
修改y轴的刻度,可以加上

# 设置y轴的刻度
plt.yticks(range(min(y),max(y)+1))

这时就会发现y轴的刻度也发生了改变
在这里插入图片描述
不过目前坐标轴上只有数字,难以直观看出来具体时间和温度单位,所以需要将x轴上的数字改成时间,可以通过在xticks里增加参数来实现

x_change = ["{}:00".format(i) for i in range(2, 25, 2)]
plt.xticks(x, x_change)

xticks(x, x_change)的作用就是用x_change来替代原来的x,这时候绘制出来的折线图里,横坐标就更加贴近生活了
在这里插入图片描述

1.5 增加中文图表描述信息

如果需要对表格以及坐标轴增加注释,可以通过实现

plt.xlabel("时间")
plt.ylabel("温度(℃)")
plt.title("一天的温度变化情况")

在这里插入图片描述
但执行之后却会出现乱码的情况,这是因为matplotlib默认并不支持中文,所以需要提前获取这台电脑的中文字体,需要先导入对应包,并定义参数my_font

from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")

再修改上面添加的代码

plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度(℃)", fontproperties=my_font)
plt.title("一天的温度变化情况", fontproperties=my_font)

这时候就可以正常绘制出带有中文的图表了
在这里插入图片描述

1.6 增加辅助网格线

如果觉得上面的图看的不够清楚,可以增加网格线进行辅助使用

# 增加辅助网格线
plt.grid()

在这里插入图片描述
完整代码如下

from matplotlib import pyplot as plt
from matplotlib import font_manager

x = range(2, 25, 2)
y = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]

my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")

# 设置图片大小
plt.figure(figsize=(20, 8),dpi=80)

# 绘图
plt.plot(x, y)
# 设置x轴的刻度
#plt.xticks(x)
x_change = ["{}:00".format(i) for i in range(2, 25, 2)]
plt.xticks(x, x_change)
# 设置y轴的刻度
plt.yticks(range(min(y),max(y)+1))

plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度(℃)", fontproperties=my_font)
plt.title("一天的温度变化情况", fontproperties=my_font)

# 增加辅助网格线
plt.grid()

# 保存图片
#plt.savefig('./1.1matplotlib基础绘图.png')  # 保存为svg矢量图可以避免放大后产生锯齿
# 展示图形
plt.show()

2.分别绘制两天温度的折线图

上面说的只是一条折线的绘图,matplotlib也可以实现两条折线的绘图,方式基本一样,只是需要增加部分代码

# 绘制图形,设置标签、颜色、线条样式
plt.plot(x, y1, label='第一天', color="#F08080")
plt.plot(x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟意昶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值