matplotlib(二)折线图

折线图

1.简单示例

from matplotlib import pyplot as plt
plt.rc('font', family='MicroSoft Yahei', size=14)  
x = range(12)
y = [15,13,14,25,17,21,23,36,36,34,15,23]
plt.plot(x,y)
plt.show()

简单折线图

a.导入模块

from matplotlib import pyplot

b.设置字体

方法一:
plt.rc('font', family='SimHei', size=14)  #(不能显示符号)
plt.rc('font', family='MicroSoft Yahei', size=14)

方法二:
from matplotlib
font={
'family' : 'MicroSoft Yahei',
'weight' : 'blod',
'size' : 'larger'
}
matplotlib.rc('font',**font)

方法三:
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname = '字体路径')
使用时:
plt.xticks(list(x)[::3],x_string[::3],rotation=45,fontproperties=my_font)

c.绘制折线图

1) 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
2) 绘制折线图
plt.polt(x,y)
3) 显示图像
plt.show()

注意:
1)figsize=() 设置大小
   dpi=  设置清晰度
2)x,y即绘图所需要的坐标点,要一一对应,且都是可迭代的

d.保存图像

plt.savefig('./t1.png')#保存为svg矢量图格式,放大不会有锯齿

e.设置x轴y轴的刻度显示值

X轴的刻度值为[0,11)

plt.plot(x,y)
plt.xticks(x)  
plt.show()

X轴的刻度值
X轴的刻度值可以设置范围和步长

#范围[3,25)步长为1
plt.plot(x,y)
plt.xticks(range(3,25,2))
plt.show()

X轴的范围和步长
刻度值可以自定义列表(2,2.5,3,3.5…)

plt.plot(x,y)
xticks_list = [i/2 for i in range(4,48)]  #(2,2.5,3,3.5...)
plt.xticks(xticks_list[::3])   #太密集 设置稀疏
plt.show()

自定义X轴的刻度
X轴显示文本

import random
x = range(120)
y = [random.randint(20,35)for i in range(120)]

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

x_string = ["10点{}分".format(i) for i in range(60)]
x_string += ["11点{}分".format(i) for i in range(60)]

plt.xticks(list(x)[::3],x_string[::3],rotation=45)#rotation旋转度数
plt.yticks(y)

#添加描述信息
plt.xlabel('时间')
plt.ylabel('温度 单位(℃)')
plt.title('10点到12点每分钟的气温变化图')

plt.show()

x轴文本

f.描述性标签

plt.xlabel('时间')    
plt.ylabel('温度 单位(℃)')
plt.title('10点到12点每分钟的气温变化图')

g.添加网格

x = range(11,31)
y = [1,0,1,2,1,2,3,1,0,3,2,1,2,3,4,1,5,1,3,1]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)

_x = ["{}岁".format(i) for i in x]

plt.xticks(x,_x,rotation=45)
#设置格数
plt.yticks(range(7))

plt.xlabel('年龄')
plt.ylabel('个数')
plt.title('年龄和恋爱个数的关系图')

#绘制网格 alpha透明度
plt.grid(alpha = 0.4)
plt.show()

网格

2.多条折线图

from matplotlib import pyplot as plt
#多条折线
x = range(11,31)
y = [1,0,1,2,1,2,3,1,0,3,2,1,2,3,4,1,5,1,3,1]
z = [3,2,1,2,3,4,1,5,1,3,1,1,0,1,2,1,2,3,1,0,]
plt.figure(figsize=(20,8),dpi=80)

#标注x,y的含义,颜色,线的种类('--','-.')或粗细linewidth=5,透明度
plt.plot(x,y,label = '自己',color = 'orange',linestyle = ':',alpha = 0.7)
plt.plot(x,z,label = '同桌', color = 'cyan',linestyle = '-.')

_x = ["{}岁".format(i) for i in x]

plt.xticks(x,_x,rotation=45)

plt.yticks(range(7))

plt.xlabel('年龄')
plt.ylabel('个数')
plt.title('年龄和恋爱个数的关系图')

plt.grid(alpha = 0.7,linestyle = '-.')

#添加图例
plt.legend(loc='upper left')
plt.show()

多条折线图

a.设置线条颜色

plt.plot(x,y,color = 'orange')

b.设置线条样式

plt.plot(x,y,linestyle = ':')

在这里插入图片描述

c.显示图例

plt.plot(x,y,label = '自己')
plt.legend(loc="best")
Location String   Location Code
'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

3.多个坐标系显示-plt.subplots(面向对象的画图方法)


# 画出温度变化图
import random
 
# 准备x, y坐标的数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
# 增加北京的温度数据
y_beijing = [random.uniform(1, 3) for i in x]
 
# 1)创建画布
# plt.figure(figsize=(20, 8), dpi=80)
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80)
 
# 2)绘制折线图
# plt.plot(x, y_shanghai)
# plt.plot(x, y_shanghai, label="上海")
axes[0].plot(x, y_shanghai, label="上海")
# 使用多次plot可以画多个折线
# plt.plot(x, y_beijing, color='r', linestyle='--', label="北京")
axes[1].plot(x, y_beijing, color='r', linestyle='--', label="北京")
 
# 显示图例
# plt.legend(loc="best")
axes[0].legend()
axes[1].legend()
 
# 增加以下两行代码
# 构造x轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
# 构造y轴刻度
y_ticks = range(40)
 
# 修改x,y轴坐标的刻度显示
# plt.xticks(x[::5], x_ticks_label[::5])
# plt.yticks(y_ticks[::5])
axes[0].set_xticks(x[::5], x_ticks_label[::5])
axes[0].set_yticks(y_ticks[::5])
axes[1].set_xticks(x[::5], x_ticks_label[::5])
axes[1].set_yticks(y_ticks[::5])
 
# 添加网格显示
# plt.grid(True, linestyle='--', alpha=0.5)
axes[0].grid(True, linestyle='--', alpha=0.5)
axes[1].grid(True, linestyle='--', alpha=0.5)
 
# 添加x轴、y轴描述信息及标题
# plt.xlabel("时间")
# plt.ylabel("温度")
# plt.title("中午11点0分到12点之间的温度变化图示")
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_title("上海中午11点0分到12点之间的温度变化图示")
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_title("北京中午11点0分到12点之间的温度变化图示")
 
# 3)显示图像
plt.show()
————————————————
版权声明:本文为CSDN博主「python爬虫人工智能大数据」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41666747/article/details/86662130

多个坐标系显示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值