Matplotlib画图工具入门

1.导入matplotlib模块

from matplotlib import pyplot as plt

2.使用模块内置方法

例子1:现在需要一张横轴x纵轴y的折线图来反映一天24小时的气温变化。代码可以如下所示来写:

from matplotlib import pyplot as plt
x=range(2,26,2)#设置横轴x的长度及步长
y=[15,13,14.5,17,2,25,26,26,24,22,18,15]#设置纵轴y的长度和步长(y的数值必须和x数值一一对应)
plt.figure(figsize=(20,8),dpi=80)#这里可以设置图像的画幅,dpi为每英寸像素密度
plt.plot(x,y)#plot方法会将x和y轴结合起来进行绘图
plt.xticks(range(2,25))#此处使用range将x的范围圈定步长为1使图像更直观精确
#plt.xticks(x)#此处直接将x的值作为横轴步长为2
plt.savefig("./p1.png")#此处用来创建一个图像文件来保存图像,括号内是文件路径及文件名
plt.show()#该方法用来展示图像

通过改变x轴的步长可以改变图像的密集程度,使图像更加精确明了. 

同理,要想改变y轴的长度和步长也可以用此方法

from matplotlib import pyplot as plt
x=range(2,26,2)
y=[15,13,14.5,17,2,25,26,26,24,22,18,15]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
plt.xticks(range(2,25))
plt.yticks(range(min(y),max(y)+1))
plt.savefig("./p1.png")
plt.show()

例子2:要求作图来表示10点到11点之间每分钟的温度变化图,代码如下:

import random
from matplotlib import pyplot as plt
y=[random.randint(20,35) for i in range(120)]
x=range(120)
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_xtick_labels=["10点{}分".format(i) for i in range(60)]
_xtick_labels+=["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=90)#rotation表示横坐标数值的旋转角度,合理利用可以防止横坐标堆积
plt.show()

 3.添加描述信息

使用matplotlib模块里面的一些方法可以为图像添加一些描述信息:

plt.xlabel("时间")
plt.ylabel("温度(℃)")
plt.title("10点到11点每分钟温度变化图")

ps:由于matplotlib模块里面没有中文相关的解析包所以需要使用另外一种方法来手动导入电脑所带的字体,可以在命令提示符里面输入fc-list并以管理员的身份运行查看本机所有字体的路径 

from matplotlib import  font_manager
#my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\STSONG.TTF")
#plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=90,fontproperties=my_font)

4.添加网格

plt.grid()

5.网格透明度设置

plt.grid(0.4)#1为不透明,就和原始一样,从0-1透明度依次降低

 6.多对象图像绘制

from matplotlib import pyplot as plt
from matplotlib import font_manager
y1=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]#对象1
y2=[1,3,2,5,6,0,8,4,2,2,5,5,4,3,9,6,2,7,4,1]#对象2
x=range(11,31)
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y1)#对对象一进行统计图绘制
plt.plot(x,y2)#对对象二进行统计图绘制
my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\STSONG.TTF")
plt.xlabel("年龄/岁",fontproperties=my_font)
plt.ylabel("个数/个",fontproperties=my_font)
plt.title("11-30岁各年龄段你要谈的女朋友个数分布图",fontproperties=my_font)
_xtick_labels=["{}岁".format(i) for i in range(11,31)]
plt.xticks(list(x),_xtick_labels,rotation=90,fontproperties=my_font)
plt.grid()
plt.show()

 7.对图像各条曲线进行对象标明:

plt.plot(x,y1,label="小方")
plt.plot(x,y2,label="小红")
plt.legend(prop=my_font)

 ps:如图显示标记为右上角,可以输入相应代码进行更改来改变标记位置:

plt.legend(prop=my_font,loc=2)#这里可以使用loc='对应图表中的位置'或者数字

 对图像线条进行颜色更改:

plt.plot(x,y1,label="小方",color="orange")
plt.plot(x,y2,label="小红",color="cyan")

 线条风格,线条粗细,线条透明度:

plt.plot(x,y1,label="小方",color="orange",linestyle='--',linewidth=5,alpha=0.5)
plt.plot(x,y2,label="小红",color="cyan",linestyle='--',linewidth=5,alpha=0.5)

下面附上本篇博客总结,希望对你的学习更有帮助.

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

愿能改写结局

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

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

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

打赏作者

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

抵扣说明:

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

余额充值