折线图
目录
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轴的刻度值可以设置范围和步长
#范围[3,25)步长为1
plt.plot(x,y)
plt.xticks(range(3,25,2))
plt.show()
刻度值可以自定义列表(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轴显示文本
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()
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