首页 > 解决方案 > 向熊猫图添加次要刻度

问题描述

我有以下代码:

from pandas_datareader import data as web
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(2, 1)
df = web.DataReader('F', 'yahoo')
df2 = web.DataReader('Fb', 'yahoo')
ax = df.plot(figsize=(35,15), ax=ax1)
df2.plot(y = 'Close', figsize=(35,15), ax=ax2)

plt.show()

这会产生如下所示的图表:

在此处输入图像描述

如何更改 pandas 图中的次要刻度,使其生成 x 轴,如下所示: 在此处输入图像描述

标签: pythonpython-3.xpandasdatetimematplotlib

解决方案


检查此代码:

from pandas_datareader import data as web
import matplotlib.pyplot as plt
import matplotlib.dates as md

fig, (ax1, ax2) = plt.subplots(2, 1)
df = web.DataReader('F', 'yahoo')
df2 = web.DataReader('Fb', 'yahoo')
ax = df.plot(figsize=(35,15), ax=ax1)
df2.plot(y = 'Close', figsize=(35,15), ax=ax2)

for ax in (ax1, ax2):
    ax.xaxis.set_major_locator(md.MonthLocator(bymonth = range(1, 13, 6)))
    ax.xaxis.set_major_formatter(md.DateFormatter('%b\n%Y'))
    ax.xaxis.set_minor_locator(md.MonthLocator())
    plt.setp(ax.xaxis.get_majorticklabels(), rotation = 0 )

plt.show()

您可以xticks使用ax.xaxis方法进行管理。上面的代码产生了这个图:

在此处输入图像描述


推荐阅读