#pandas #matplotlib #subplot
#pandas #matplotlib #подзаголовок
Вопрос:
Я хочу создать две круговые диаграммы на основе следующих данных:
post_type owner_user_id year_posted score count
A 150165022 332372 2567380 35846
Q 112349610 283997 180680 2111
один за score
другим и по одному count
сгруппированы post_type
. Итак, я использую следующий код:
axes[0].labels = ['answers', 'questions']
axes[0].sizes = buffer_df['score']
axes[0].explode = (0, 0.3)
axes[0].pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',shadow=True, startangle=90)
axes[0].axis('equal')
axes[1].labels = ['answers a', 'questions a']
axes[1].sizes = buffer_df['count']
axes[1].explode = (0, 0.3)
axes[1].pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',shadow=True, startangle=90)
axes[1].axis('equal')
plt.show()
но я получаю только первую диаграмму, нарисованную два раза:
Я знаю, что это первая диаграмма, так как я меняю метки второй.
Кто-нибудь может сказать, что я делаю не так?
Ответ №1:
Я не знаю, почему это так, но если вы опишете это напрямую, вы можете нарисовать то, что намереваетесь.
import matplotlib.pyplot as plt
fig, axes= plt.subplots(1,2, figsize=(12,9))
axes[0].pie(buffer_df['score'], explode=(0, 0.3), labels=['answers', 'questions'], autopct='%1.1f%%',shadow=True, startangle=90)
axes[0].axis('equal')
axes[1].pie(buffer_df['count'], explode=(0, 0.3), labels=['answers a', 'questions a'], autopct='%1.1f%%',shadow=True, startangle=90)
axes[1].axis('equal')
plt.show()