4. Matplotlib的清晰表达

个人网站:山海同行
网站地址:https://shanhaigo.cn/
本篇地址:https://shanhaigo.cn/courseContent/121871481879555932160

接上篇,实现了自定义点和线的样式,但是图中表达的x轴、y轴不是很详细,接下来有Matplotlib小伙伴给大家慢慢完善描述信息,达到看图识意!

一、添加刻度

现在我们画的图是北京2024年平均天气,x轴应该是月份,y轴应该是温度,这样我们知道每个月对应的温度趋势。如何添加呢?

Matplotlib给出了x、y的刻度接口,我们要做的就是把刻度信息给到Matplotlib小伙伴就行:

plt.xticks(x, **kwargs)
x:要显示的刻度值
plt.yticks(y, **kwargs)
y:要显示的刻度值

比如,这次我把12月的月份和对应的温度数据,给到Matplotlib就可以实现:

# 刻度
# 月份刻度
x_ticks_label = ["{}月".format(i) for i in range(1, 13)]
# 温度刻度
y_ticks_label = ["{}℃".format(i) for i in y_data]
# 刻度赋值
plt.xticks(x_data, x_ticks_label)
plt.yticks(y_data, y_ticks_label)

image.png

中文刻度显示问题,有的图表中文不显示

解决方法如下:

from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

二、添加网格

为了更好的辅助x轴和y轴的对应关系,添加网格
网格语法如下:

grid(color = 'color', linestyle = 'linestyle', linewidth = number)

参数说明:
color:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色,‘#008000’ RGB 颜色符串。
linestyle:‘‐’ 实线,‘‐‐’ 破折线,‘‐.’ 点划线,‘:’ 虚线。
linewidth:设置线的宽度,可以设置一个数字。

举例:

# 网格
# 默认True:显示网格,虚线,透明度为0.5
plt.grid(True, linestyle='--', alpha=0.5)

image.png

三、添加轴上描述

添加x轴和y轴的描述信息

# 轴描述
plt.xlabel("月份")
plt.ylabel("温度")

image.png

四、添加图的标题

为整张图添加标题

# 图标题
plt.title("北京2024年平均天气")

image.png

五、添加图例

添加图例前,我们需要另一组数据,同一张表中进行区分

添加深圳温度天气

# 深圳2024年平均天气
# 十二个月
sz_x_data = [i for i in range(1, 13)]
# 每个月平均温度
sz_y_data = [19, 22, 26, 27, 28, 28, 28, 28, 27, 25, 22, 20]

# 深圳折线图
plt.plot(sz_x_data, sz_y_data, 'o:g')

接下来进行添加图例

# 图例
plt.legend(["北京", "深圳"], loc='best')

image.png

loc参数值如下:

字符串编码
‘best’0
‘upper right’1
‘upper left’2
‘lower left’3
‘lower right’4
‘right’5
‘center left’6
‘center right’7
‘lower center’8
‘upper center’9
‘center’10

完整代码如下

import matplotlib.pyplot as plt
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

# 画图背景切换
plt.switch_backend('TkAgg')

# 北京2024年平均天气
# 十二个月
x_data = [i for i in range(1, 13)]
# 每个月平均温度
y_data = [-4, -4, 5, 10, 18, 23, 25, 25, 20, 10, 2, -4]

# 深圳2024年平均天气
# 十二个月
sz_x_data = [i for i in range(1, 13)]
# 每个月平均温度
sz_y_data = [19, 22, 26, 27, 28, 28, 28, 28, 27, 25, 22, 20]

# 画布
plt.figure(figsize=(15, 7), dpi=100)

# 绘制折线图
# 实心圆
plt.plot(x_data, y_data)

# 深圳折线图
plt.plot(sz_x_data, sz_y_data, 'o:g')

# 刻度
# 月份刻度
x_ticks_label = ["{}月".format(i) for i in range(1, 13)]
# 温度刻度
y_ticks_label = ["{}℃".format(i) for i in y_data]
# 刻度赋值
plt.xticks(x_data, x_ticks_label)
plt.yticks(y_data, y_ticks_label)

# 网格
# 默认True:显示网格,虚线,透明度为0.5
plt.grid(True, linestyle='--', alpha=0.5)

# 轴描述
plt.xlabel("月份")
plt.ylabel("温度")

# 图标题
plt.title("北京2024年平均天气")


# 图例
plt.legend(["北京", "深圳"], loc='best')

# 生成图片
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值