运用matplotlib使数据可视化(绘制折线图)

用matplotlib绘制一个美观的折线图

*开始前请先导入matplotlib库以使用相关模块

假设以下将用random模块随机产生某地区某月30天内的温度,并用折线图绘制出气温变化情况。

1绘制一个简单的折线图

# edited by Lyu
# 仅供学习使用,禁止一切商业用途
import matplotlib.pyplot as plt
import random
plt.figure(figsize=(20,8),dpi=100)  #设置图像长宽,像素密度
y=[random.randint(0,20)for i in range(30)]#设置x,y的数据
x=range(1,31)
plt.plot(x,y)                       #绘制折线图
plt.savefig("./plot")
plt.show()                          #显示折线图

得到如下图形:
利用random模块产生的一个折线图
但是只看此图难以获得有效的信息,我们需要添加一些描述的信息。

2改变刻度(ticks)、增加标签(labels)

# edited by Lyu
# 仅供学习使用,禁止一切商业用途
import matplotlib.pyplot as plt
import random
plt.figure(figsize=(20,8),dpi=100)  #设置图像长宽,像素密度
y=[random.randint(0,20)for i in range(30)]#设置x,y的数据
x=range(1,31)
plt.plot(x,y)                       #绘制折线图
plt.xticks(x)                       #设置x刻度
plt.xlabel("D")                     #设置x标签
plt.ylabel("T")                     #设置y标签
#plt.savefig("./plot")              #保存图片
plt.show()                          #显示折线图

改变刻度增加标签后
这时可以比较清楚的看清x,y轴表示的信息以及每一日的温度了。
但是matplotlib默认不支持显示中文字符,如果想增加中文信息要怎么办呢?

3增加中文信息

way1:利用系统自带的文字库

# edited by Lyu
# 仅供学习使用,禁止一切商业用途
import matplotlib.pyplot as plt
import random
from matplotlib.font_manager import FontProperties

font = FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
plt.figure(figsize=(20,8),dpi=100)  #设置图像长宽,像素密度
y=[random.randint(0,20)for i in range(30)]#设置x,y的数据
x=range(1,31)
plt.plot(x,y)                       #绘制折线图
x_ticks=["第{}天".format(i) for i in x]#设置x轴刻度标签
plt.xticks(x,x_ticks,fontproperties=font)   #将x数据和刻度标签对应                  #设置x刻度
plt.xlabel("天数",color='r',size=14,fontproperties=font) #设置x、y标签                    #设置x标签
plt.ylabel("温度",color='r',size=14,fontproperties=font)                 #设置y标签
plt.savefig("./plot")              #保存图片
plt.show()                          #显示折线图

效果图
way2:利用字典

# edited by Lyu
# 仅供学习使用,禁止一切商业用途
import matplotlib.pyplot as plt
import random

font_dict={'family':'STZhongsong','size':14}#设置font字典,宋体
plt.figure(figsize=(20,8),dpi=100)  #设置图像长宽,像素密度
y=[random.randint(0,20)for i in range(30)]#设置x,y的数据
x=range(1,31)
plt.plot(x,y)                       #绘制折线图
x_ticks=["第{}天".format(i) for i in x]#设置x轴刻度标签
plt.xticks(x,x_ticks,rotation=45,fontdict=font_dict)   #将x数据和刻度标签对应                  #设置x刻度
plt.xlabel("天数",color='r',size=14,fontdict=font_dict) #设置x、y标签                    #设置x标签
plt.ylabel("温度",color='r',size=14,fontdict=font_dict)                 #设置y标签
plt.savefig("./plot")              #保存图片
plt.show()                          #显示折线图

效果图
此两种方法比较推荐。此外还有两种方法不太建议,此处不列出。

end

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

superior tigre

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

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

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

打赏作者

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

抵扣说明:

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

余额充值