Мне бы хотелось иметь многострочную фигуру с кадром данных.
Исходные данные выглядят следующим образом:
from numpy.random import randn
import numpy as np
df=pd.DataFrame()
df['Years']=range(1995,2013)
np.random.seed(0)
df['Goverment']=randn(len(df.Years))
df['Household']=randn(len(df.Years))
df['Corporate']=randn(len(df.Years))
print(df)
, и я хочу установить легенду вдоль полностью связанной рамки фигуры.Я сослался на ответ @ Джо Кингтон , но эта проблема не была решена.
Для черчения:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,6))
ax = plt.subplot(111)
ax.plot(df.Years, df.Government,ls='--',label='Goverment',color='black')
ax.plot(df.Years,df.Household,ls=':',label='Household',color='black')
ax.plot(df.Years,df.Corporate,ls='-',label='Corporate',color='black')
plt.xlabel("common X")
box = ax.get_position()
ax.set_position([box.x0, box.y0 + box.height * 0.1,
box.width, box.height * 1])
# Put a legend below current axis
ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.1),borderaxespad=1,mode='expand',ncol=3)
plt.show()
и мой результат приведен ниже.Видимо mode='expand'
здесь не работает.
Мои вопросы: 1. Почему значения на оси X не являются целыми числами, а плавают?2. Как развернуть поле легенды в одну строку по всей длине вдоль границы поля?
Идеальное поле легенды должно быть: