#python #pandas
Вопрос:
Я начинающий пользователь Python 3 и хотел бы спросить, можете ли вы, ребята, помочь мне разобраться в этой вещи. Приведенный ниже код предназначен для создания двух подстрок параметров данных на страницу pdf, и я использую функцию «axhline» для построения границ данных каждого параметра. Однако, когда я использую его внутри цикла for, только у второго подзаголовка были ограничения на данные — первый всегда не отображается. Я полагаю, что происходит, когда axhline работает по одному за раз в цикле for? Вместо того, чтобы иметь его в обоих подзаголовках к концу цикла for? Пожалуйста, загляните в мой код ниже:
fig, ax = plt.subplots(2, 1)
ax = ax.flatten()
for i, col in enumerate(hib_list[0:2]):
ax1 = sns.boxplot(x=lotid, y=cc_df[col], ax=ax[i], hue=temp)
ax1.set_ylabel(col,fontsize=8)
ax1.get_legend().remove()
plt.tight_layout(pad=1.0)
#Below line is to set data limits
plt.axhline(y=500, color='r', linestyle='--')
pdf.savefig()
plt.close()
Ответ №1:
Ниже приведена исправленная версия вашего кода. Вы можете установить один раз за цикл ax=axes[i]
, а затем использовать ax
для всех операций. plt.(…)
работает только на объекте с последними нанесенными осями.
fig, axes = plt.subplots(2, 1)
axes = axes.flatten()
for i, col in enumerate(hib_list[0:2]):
ax = axes[i]
sns.boxplot(x=lotid, y=cc_df[col], ax=ax, hue=temp)
ax.set_ylabel(col,fontsize=8)
ax.get_legend().remove()
#Below line is to set data limits
ax.axhline(y=500, color='r', linestyle='--')
plt.tight_layout(pad=1.0)
pdf.savefig()
plt.close()