Я создал следующую гистограмму:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ts = pd.Series(np.random.randn(1000),index=pd.date_range('1/2/2000', periods=1000))
df = pd.DataFrame(np.random.randn(1000,4), index = ts.index, columns = list('ABCD'))
df = df.cumsum()
df.iloc[0:5].plot.bar()
Результат выглядит так:
Как изменить формат оси x на 1) YMD без часов и минут и 2) повернуть метку оси x на 50 градусов?
Я посмотрел на это и сумел создать линейный график: Изменение форматирования оси дата-время в matplotlib
import matplotlib.dates as mdates
fig, ax = plt.subplots()
ax.plot(df.index[0:5], df.values[0:5])
ax.set_xticks(df.index[0:5])
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d"))
ax.xaxis.set_minor_formatter(mdates.DateFormatter("%Y-%m-%d"))
_=plt.xticks(rotation=50)
![enter image description here](https://i.stack.imgur.com/AAcke.png)
Чтобы получить гистограмму с нужной меткой xaxis, я попытался выполнить следующее, но получил «ValueError: несоответствие формы: объекты не могут быть переданы в одну форму ":
fig, ax = plt.subplots()
ax.bar(df.index[0:5], df.values[0:5])
ax.set_xticks(df.index[0:5])
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d"))
ax.xaxis.set_minor_formatter(mdates.DateFormatter("%Y-%m-%d"))
_=plt.xticks(rotation=50)
Может кто-нибудь сказать мне, как я могу добраться до гистограммы?
Есть ли способ использовать только pyplot без осей?
Спасибо.