如何让 Matplotlib 显示所有刻度标签?
How can I make Matplotlib show all tick labels?
我正在尝试绘制一些时间序列',但我在刻度标签上遇到了困难。
我的 df 看起来像这样:
Q1-Q5
Date
2003 -0.183333
2004 -0.195833
2005 0.044167
2006 -0.040000
2007 0.841667
2008 0.251667
2009 -0.913333
2010 -0.471667
2011 0.005833
2012 -0.297500
2013 -0.625833
2014 0.290833
2015 0.059167
2016 0.632500
2017 1.015000
2018 0.258333
2019 0.030000
2020 0.651667
2021 0.255000
绘制它的代码如下所示:
fig, (ax1, ax2,ax3, ax4) = plt.subplots(4, 1, figsize = (20,20))
df.plot(ax = ax1)
ax1.set_yticks(y_ticks)
ax1.tick_params(axis='x', labelrotation = 90)
ax1.grid(axis = 'y')
ax1.set_ylim(-1.5, 1.5)
不过情节是这样的
https://i.stack.imgur.com/tKqP6.png
我怎样才能让它以 x 刻度显示所有年份?
提前致谢
试试这个:
import pandas as pd
import matplotlib.pylab as plt
data = pd.read_csv("years_data.txt", sep=" ")
fig, (ax1, ax2,ax3, ax4) = plt.subplots(4, 1, figsize = (20,20))
data.plot(x='Year', y='Q1-Q5', ax = ax1)
ax1.set_xticklabels(data['Year'])
ax1.grid(axis = 'y')
ax1.set_ylim(-1.5, 1.5)
输出为:
我使用了 set_xticklabels()
函数而不是 tick_params()
。我找到了这个教程 here。你必须给它你想要的刻度线列表。
如果您只想查看感兴趣的情节:
fig, ax =plt.subplots()
data.plot(x='Year', y='Q1-Q5', ax =ax)
ax.set_xticklabels(data['Year'])
ax.set_ylim(-1.5, 1.5)
输出:
那我个人喜欢用函数plt.setp()
:
修改刻度线
fig, ax =plt.subplots()
data.plot(x='Year', y='Q1-Q5', ax =ax)
ax.set_xticklabels(data['Year'])
plt.setp( ax.xaxis.get_majorticklabels(), rotation=-45, ha="left", weight="bold")
ax.set_ylim(-1.5, 1.5)
输出为:
我正在尝试绘制一些时间序列',但我在刻度标签上遇到了困难。 我的 df 看起来像这样:
Q1-Q5
Date
2003 -0.183333
2004 -0.195833
2005 0.044167
2006 -0.040000
2007 0.841667
2008 0.251667
2009 -0.913333
2010 -0.471667
2011 0.005833
2012 -0.297500
2013 -0.625833
2014 0.290833
2015 0.059167
2016 0.632500
2017 1.015000
2018 0.258333
2019 0.030000
2020 0.651667
2021 0.255000
绘制它的代码如下所示:
fig, (ax1, ax2,ax3, ax4) = plt.subplots(4, 1, figsize = (20,20))
df.plot(ax = ax1)
ax1.set_yticks(y_ticks)
ax1.tick_params(axis='x', labelrotation = 90)
ax1.grid(axis = 'y')
ax1.set_ylim(-1.5, 1.5)
不过情节是这样的
https://i.stack.imgur.com/tKqP6.png
我怎样才能让它以 x 刻度显示所有年份?
提前致谢
试试这个:
import pandas as pd
import matplotlib.pylab as plt
data = pd.read_csv("years_data.txt", sep=" ")
fig, (ax1, ax2,ax3, ax4) = plt.subplots(4, 1, figsize = (20,20))
data.plot(x='Year', y='Q1-Q5', ax = ax1)
ax1.set_xticklabels(data['Year'])
ax1.grid(axis = 'y')
ax1.set_ylim(-1.5, 1.5)
输出为:
我使用了 set_xticklabels()
函数而不是 tick_params()
。我找到了这个教程 here。你必须给它你想要的刻度线列表。
如果您只想查看感兴趣的情节:
fig, ax =plt.subplots()
data.plot(x='Year', y='Q1-Q5', ax =ax)
ax.set_xticklabels(data['Year'])
ax.set_ylim(-1.5, 1.5)
输出:
那我个人喜欢用函数plt.setp()
:
fig, ax =plt.subplots()
data.plot(x='Year', y='Q1-Q5', ax =ax)
ax.set_xticklabels(data['Year'])
plt.setp( ax.xaxis.get_majorticklabels(), rotation=-45, ha="left", weight="bold")
ax.set_ylim(-1.5, 1.5)
输出为: