matplotlib绘图X轴标签不完全显示解决方法
举例: 现从excel中读取日期为X轴,X轴的刻度设置为每10个日期为一个间隔,但是绘图X轴的标签没有对应上刻度显示,如下图所示 主要代码如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore') #不打印告警
plt.rcParams['font.sans-serif'] = ['KaiTi'] #将图中的字体设置为中文楷体
plt.rcParams['axes.unicode_minus'] = False #显示图中的负数
df=pd.read_excel(r'E:\python\Files\file3\data.xlsx')
dfg=df.groupby(df['网元ID'])
lst=list(dfg)
time_list=lst[0][1]['开始时间'].tolist()
fig=lst[0][1].plot(x='开始时间',y='RRC连接最大连接用户数',figsize=(10,5))
fig=lst[0][1].plot.area(x='开始时间',y='RRC连接平均连接用户数',ax=fig) #在fig上继续绘制
plt.xticks(range(0,len(time_list),10),rotation=90,fontsize=8)#横轴标签旋转90°
plt.subplots_adjust(left=0.05, right=0.95, top=0.95, bottom=0.3)#调整图片边缘距离
plt.show()
解决方法: 了解xticks()函数中参数的含义,利用其[labels]参数解决X轴标签显示不全的现象,xticks()函数参数解释如下
xticks()中有3个参数:
xticks(locs, [labels], **kwargs)
locs参数是一个数组,用于设置X轴刻度间隔
[labels]参数也是一个数组,用于设置每个间隔的显示标签
**kwargs可用于设置标签字体倾斜度和颜色等
期望效果图: 期望效果图完整代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore') #不打印告警
plt.rcParams['font.sans-serif'] = ['KaiTi'] #将图中的字体设置为中文楷体
plt.rcParams['axes.unicode_minus'] = False #显示图中的负数
df=pd.read_excel(r'E:\python\Files\file3\data.xlsx')
dfg=df.groupby(df['网元ID'])
lst=list(dfg)
time_list=lst[0][1]['开始时间'].tolist()
fig=lst[0][1].plot(x='开始时间',y='RRC连接最大连接用户数',figsize=(10,5))
fig=lst[0][1].plot.area(x='开始时间',y='RRC连接平均连接用户数',ax=fig) #在fig上继续绘制
plt.xticks(range(0,len(time_list),10),[time_list[i] for i in range(0,len(time_list),1) if i%10==0],rotation=90,fontsize=8)#横轴标签旋转90°
plt.subplots_adjust(left=0.05, right=0.95, top=0.95, bottom=0.3)#调整图片边缘距离
plt.show()
其中[labels]参数本文用了列表表达式的方式
[time_list[i] for i in range(0,len(time_list),1) if i%10==0] #等价于label_list
其等价于
label_list=[]
for i in range(0,len(time_list),1):
if i%10==0:
label_list.append(time_list[i])
|