你可以告訴matplotlib顯示每N個標籤:
# show every Nth label
locs, labels = plt.xticks()
N = 10
plt.xticks(locs[::N], test_df.index[::N].strftime('%Y-%m-%d'))
import matplotlib.pyplot as plt
import pandas as pd
from pandas_datareader import data
test_df = data.get_data_yahoo('AAPL', start='2015-10-01')
fig, ax = plt.subplots(nrows=2)
test_df['Adj Close'].plot(ax=ax[0])
test_df['Volume'].plot(kind='bar', ax=ax[1])
# show every Nth label
locs, labels = plt.xticks()
N = 10
plt.xticks(locs[::N], test_df.index[::N].strftime('%Y-%m-%d'))
# autorotate the xlabels
fig.autofmt_xdate()
plt.show()
產量
另一種選擇是matplotlib直接使用:
import matplotlib.pyplot as plt
import pandas as pd
from pandas_datareader import data
import matplotlib.dates as mdates
df = data.get_data_yahoo('AAPL', start='2015-10-01')
fig, ax = plt.subplots(nrows=2, sharex=True)
ax[0].plot(df.index, df['Adj Close'])
ax[0].set_ylabel('price per share')
ax[1].bar(df.index, df['Volume']/10**6)
ax[1].xaxis.set_major_locator(mdates.MonthLocator(bymonthday=-1))
xfmt = mdates.DateFormatter('%B %d, %Y')
ax[1].xaxis.set_major_formatter(xfmt)
ax[1].set_ylabel('Volume (millions)')
# autorotate the xlabels
fig.autofmt_xdate()
plt.show()
感謝,除了會是可能的,只是情節一個月,一年x軸上(如十月,2015年),你會怎麼做y軸人類可讀? – BML91
你想如何看y標籤? – unutbu
實際上可能是相同的,只是沒有1e8和y軸標籤(即卷(百萬))的回報規模? – BML91