У меня проблема с пандами, и я не мог понять, почему. Я хочу создать фигуру с двумя подграфиками и построить все метки оси x подграфиков. Вот данные:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame({'value A': np.random.random(10), 'value B': np.random.random(10)*np.random.random_sample()*10.,
'value C': np.concatenate((np.tile(1, 5),np.tile(2,5)))}, index=pd.date_range('2015-03-02', periods=10, freq='D'))
print(df)
вот код прорисовки:
fig = plt.figure(1, figsize=(12,8), tight_layout=True)
ax1 = fig.add_subplot(211)
df[['value A', 'value B']][df['value C'] == 1].plot(ax=ax1, grid=True, secondary_y='value B')
ax2 = fig.add_subplot(212)
df[['value A', 'value B']][df['value C'] == 2].plot(ax=ax2, grid=True, secondary_y='value B')
plt.show()
этот код не покажет отсутствие меток оси x на верхнем графике. Вместо этого это покажет им:
fig = plt.figure(1, figsize=(12,8), tight_layout=True)
ax1 = fig.add_subplot(211)
df[['value A', 'value B']][df['value C'] == 1].plot(ax=ax1, grid=True)
ax2 = fig.add_subplot(212)
df[['value A', 'value B']][df['value C'] == 2].plot(ax=ax2, grid=True, secondary_y='value B')
plt.show()
или это:
fig = plt.figure(1, figsize=(12,8), tight_layout=True)
ax1 = fig.add_subplot(211)
df[['value A', 'value B']][df['value C'] == 1].plot(ax=ax1, grid=True, secondary_y='value B')
ax2 = fig.add_subplot(212)
plt.show()
Помогите мне понять, почему, пожалуйста? Я также попытался установить тики вручную на верхнем графике, используя
gca().get_xaxis().set_xticks()
gca().get_xaxis().set_xticklabels()
панды v 0.18
матплотлиб v 1.5.1
но это не работает. Большое спасибо! Серг