解决报错:AttributeError: 'AxesSubplot' object has no attribute 'set_xtickslabels'

文章目录

源代码

# 需求:多个坐标系
# 创建画布的时候要修改了
# 用subplots
# 参数nrows多少行,我们现在需要一行两列nrows=1
# 参数ncols多少列,我们现在需要一行两列你cols=2
# 参数figsize是画布大小我们设置为figsize=(20,8)
# dpi
# plt.subplots(nrows=1,ncols=2,figsize = (20,8), dpi=100)
# 然后他们需要被接受一下
# 被接受的一个是画布一个是绘图区域对象(数组)
# fig,ax = plt.subplots(nrows=1,ncols=2,figsize = (20,8), dpi=100)
# 然后绘制的方法要修改了
# 指定坐标系
# ax[0].plot(x,y_beijing,label='北京')
# ax[1].plot(x,y_jingxian,label='泾县')
#然后描述信息也要变化
# 需要把plt.xlabel改成ax[0].set_label()!!!!
# 坐标轴刻度也要改
# plt.xticks改成每个坐标系去设置
# 改成ax[0].set_xticks
# # 刻度里面也要改
# 本来是plt.xticks(x[::5],x_tick_label[::5])
# 现在要改成
# ax[0].set_xticks(x[::5])
# ax[0].set_xtickslabels(x_tick_label[::5])【分成了两步啊!!!这个接口要注意啊!!!】
#添加网格线也要改啊
# plt.grid改成
# ax[0].grid
# ax[1].grid
# #添加图例也要改
# ax[0].legend
# ax[1].legend
# 显示图片不要改的
# 更改颜色就是在plot的里面添加颜色color='r'红色



#导入工具
import matplotlib.pyplot as plt
import random

#创建画布
# plt.figure(figsize=(20,8),dpi = 80)
fig,ax = plt.subplots(nrows=1,ncols=2,figsize = (20,8), dpi=100)

#绘制图像,画出安徽省宣城市泾县11点到12点1小时内每分钟的温度变化折线图,
#温度范围在15度~18度(随机产生)
x = range(60)
y_jingxian = [random.uniform(15,18) for i in x]#列表生成式,uniform定义范围得到一个随机数
y_beijing = [random.uniform(3,8) for i in x]#列表生成式,uniform定义范围得到一个随机数

#绘制两个折线图
# plt.plot(x,y_jingxian,label = '泾县')
# plt.plot(x,y_beijing,label = '北京')
ax[0].plot(x,y_jingxian,label = '泾县')
ax[1].plot(x,y_beijing,label = '北京')

plt.rcParams['font.family']=['SimHei']

#添加描述信息
# plt.xlabel('时间',fontsize = 20)
# plt.ylabel('温度',fontsize = 20)
# plt.title('安徽省宣城市泾县对比北京市11点到12点1小时内每分钟的温度变化折线图',fontsize = 30)
ax[0].set_xlabel('时间',fontsize = 20)
ax[0].set_ylabel('温度',fontsize = 20)
ax[0].set_title('安徽省宣城市泾县11点到12点1小时内每分钟的温度变化折线图',fontsize = 30)
ax[1].set_xlabel('时间',fontsize = 20)
ax[1].set_ylabel('温度',fontsize = 20)
ax[1].set_title('北京市11点到12点1小时内每分钟的温度变化折线图',fontsize = 30)



# # 添加x坐标轴刻度
x_tick_label = ["11点{}分".format(i) for i in x]
# plt.xticks(x[::5],x_tick_label[::5])# [::5]是每隔五个选一个,后面的也要对应上
ax[0].set_xticks(x[::5])
ax[0].set_xtickslabels(x_tick_label[::5])#【重要】和一个区域的不一样!!!
ax[1].set_xticks(x[::5])
ax[1].set_xtickslabels(x_tick_label[::5])#【重要】和一个区域的不一样!!!



# # 添加y坐标轴刻度
y_range = range(40)
# plt.yticks(y_range[::5])#[::5]是每隔五个选一个
ax[0].set_yticks(y_range[::5])
ax[1].set_yticks(y_range[::5])

#添加网格线 linestyle线型 alpha透明度
plt.grid(True,linestyle = ':',alpha=0.8)

#添加图例 loc指定图例的位置
plt.legend(loc = 'best')

#保存图像
plt.savefig('./安徽省宣城市泾县对比北京市11点到12点1小时内每分钟的温度变化折线图.png')

#显示图像
plt.show()#如果不用show的话,只是在缓存中

报错

在这里插入图片描述

解决


您多输入了一个s
设置刻度的标签应该是xticklabels而不是xtickslabels
正确代码:

# 需求:多个坐标系
# 创建画布的时候要修改了
# 用subplots
# 参数nrows多少行,我们现在需要一行两列nrows=1
# 参数ncols多少列,我们现在需要一行两列你cols=2
# 参数figsize是画布大小我们设置为figsize=(20,8)
# dpi
# plt.subplots(nrows=1,ncols=2,figsize = (20,8), dpi=100)
# 然后他们需要被接受一下
# 被接受的一个是画布一个是绘图区域对象(数组)
# fig,ax = plt.subplots(nrows=1,ncols=2,figsize = (20,8), dpi=100)
# 然后绘制的方法要修改了
# 指定坐标系
# ax[0].plot(x,y_beijing,label='北京')
# ax[1].plot(x,y_jingxian,label='泾县')
#然后描述信息也要变化
# 需要把plt.xlabel改成ax[0].set_label()!!!!
# 坐标轴刻度也要改
# plt.xticks改成每个坐标系去设置
# 改成ax[0].set_xticks
# # 刻度里面也要改
# 本来是plt.xticks(x[::5],x_tick_label[::5])
# 现在要改成
# ax[0].set_xticks(x[::5])
# ax[0].set_xtickslabels(x_tick_label[::5])【分成了两步啊!!!这个接口要注意啊!!!】
#添加网格线也要改啊
# plt.grid改成
# ax[0].grid
# ax[1].grid
# #添加图例也要改
# ax[0].legend
# ax[1].legend
# 显示图片不要改的
# 更改颜色就是在plot的里面添加颜色color='r'红色



#导入工具
import matplotlib.pyplot as plt
import random

#创建画布
# plt.figure(figsize=(20,8),dpi = 80)
fig,ax = plt.subplots(nrows=1,ncols=2,figsize = (20,8), dpi=100)

#绘制图像,画出安徽省宣城市泾县11点到12点1小时内每分钟的温度变化折线图,
#温度范围在15度~18度(随机产生)
x = range(60)
y_jingxian = [random.uniform(15,18) for i in x]#列表生成式,uniform定义范围得到一个随机数
y_beijing = [random.uniform(3,8) for i in x]#列表生成式,uniform定义范围得到一个随机数

#绘制两个折线图
# plt.plot(x,y_jingxian,label = '泾县')
# plt.plot(x,y_beijing,label = '北京')
ax[0].plot(x,y_jingxian,label = '泾县')
ax[1].plot(x,y_beijing,label = '北京')

plt.rcParams['font.family']=['SimHei']

#添加描述信息
# plt.xlabel('时间',fontsize = 20)
# plt.ylabel('温度',fontsize = 20)
# plt.title('安徽省宣城市泾县对比北京市11点到12点1小时内每分钟的温度变化折线图',fontsize = 30)
ax[0].set_xlabel('时间',fontsize = 20)
ax[0].set_ylabel('温度',fontsize = 20)
ax[0].set_title('安徽省宣城市泾县每分钟的温度变化折线图',fontsize = 30)
ax[1].set_xlabel('时间',fontsize = 20)
ax[1].set_ylabel('温度',fontsize = 20)
ax[1].set_title('北京市每分钟的温度变化折线图',fontsize = 30)



# # 添加x坐标轴刻度
x_tick_label = ["11点{}分".format(i) for i in x]

# # plt.xticks(x[::5],x_tick_label[::5])# [::5]是每隔五个选一个,后面的也要对应上
ax[0].set_xticks(x[::5])
ax[0].set_xticklabels(x_tick_label[::5])
# ax[0].set_xticks(x[::5])
# ax[0].set_xticklabels(x_tick_label[::5])
ax[1].set_xticks(x[::5])
ax[1].set_xticklabels(x_tick_label[::5])
# ax[1].set_xticks(x[::5])
# ax[1].set_xtickslabels(x_tick_label[::5])

# # # 添加y坐标轴刻度
y_range = range(40)
# ax[0].set_yticks(y_range[::5])
# ax[1].set_yticks(y_range[::5])
ax[0].set_yticks(y_range[::5])
ax[1].set_yticks(y_range[::5])

# plt.xticks(x[::5], x_tick_label[::5])
# plt.yticks(y_range[::5])



# 添加网格线
# plt.grid(linestyle='--', alpha=0.8)
ax[0].grid(linestyle='--', alpha=0.8)
ax[1].grid(linestyle='--', alpha=0.8)

#添加网格线 linestyle线型 alpha透明度
plt.grid(True,linestyle = ':',alpha=0.8)

#添加图例 loc指定图例的位置
plt.legend(loc = 'best')

#保存图像
plt.savefig('./安徽省宣城市泾县对比北京市11点到12点1小时内每分钟的温度变化折线图.png')

#显示图像
plt.show()#如果不用show的话,只是在缓存中

在这里插入图片描述

发布了561 篇原创文章 · 获赞 750 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_35456045/article/details/104572767