2

10 年以上の時系列があり、xtick ラベルを 2 桁の年に省略したいと考えています。どうやってやるの ?

import matplotlib.pyplot as plt
import datetime as dt
import pandas as pd
import pandas.io.data as web

stocklist = ['MSFT']

# read historical prices for last 11 years
def get_px(stock, start):
    return web.get_data_yahoo(stock, start)['Adj Close']

today = dt.date.today()
start = str(dt.date(today.year-11, today.month, today.day))
px = pd.DataFrame({n: get_px(n, start) for n in stocklist})
plt.plot(px.index, px[stocklist[0]])
plt.show()
4

2 に答える 2

2

pandasこれは疑わしい方法で内部を掘り下げますが、

ax = plt.gca()
ax.get_xaxis().get_major_formatter().scaled[365] = '%y'
plt.draw()

フォーマットスペック

于 2013-01-13T22:01:22.100 に答える
1

このコードを見つけました。フォーマットを変更できます。

ax = plt.gca()
xax = ax.get_xaxis()  # get the x-axis
adf = xax.get_major_formatter()  # get the auto-formatter

adf.scaled[1. / 24] = '%H:%M'  # set the < 1d scale to H:M
adf.scaled[1.0] = '%Y-%m-%d'  # set the > 1d < 1m scale to Y-m-d
adf.scaled[30.] = '%y-%b'  # set the > 1m < 1Y scale to Y-m
adf.scaled[365.] = '%Y'  # set the > 1y scale to Y

という行に注目してくださいadf.scaled[30.] = '%y-%b' # set the > 1m < 1Y scale to Y-m。小さな文字yは 2 桁の年 (大きな Y は 4 桁) をb示し、小さな文字は 3 文字の月を示します (小さな m は数値の月を示します)。これらは Python のかなり標準的な形式の型だと思います。

于 2018-08-10T17:15:19.023 に答える