我正在尝试根据特定条件创建 2 个不同的图。 从我上传的文本中获取的条件定义了如何过滤数据。有两种过滤选项:按年龄或按性别。当 if 语句为 true 时,应保存每个图表。
这是代码:
idc_list = list(conditions[4].split(","))
new_data = df[df['ICD9_code'].isin(idc_list)]
print(new_data.head)
if conditions[2] == 1:
new_data = new_data[['age','Death']]
ranges = [0,30,60,90,120]
group = new_data.groupby(pd.cut(new_data.age, ranges)).Death.agg('count')
group.plot(x='age', y='Death', kind='bar')
plt.title("Death vs Age")
plt.xlabel('Age',fontsize=10)
plt.ylabel('Numbers of Death',fontsize=10)
plt.show()
plt.savefig(plt.savefig('{}.png'.format("Result")))
if conditions[3] == 1:
new_data = new_data[['gender_x', 'Death']]
group = df.groupby('gender_x').Death.agg('count')
group.plot(x='gender_x', y='Death', kind='bar')
plt.title("Death vs Gender")
plt.xlabel('Gender',fontsize=10)
plt.ylabel('Numbers of Death',fontsize=10)
plt.show()
plt.savefig("Results_Gender")
我想为每个条件创建 2 个不同的图并保存。 当我运行它时,它不显示绘图也不保存它。 我该如何解决?由于某种原因我无法成功保存剧情。
在调用显示方法之前,您需要保存数字。如文档
中所述如果您想要图像文件以及用户界面窗口,请在 pyplot.show 之前使用 pyplot.savefig。在(阻塞) show() 结束时,图形被关闭,因此从 pyplot 中取消注册。之后调用 pyplot.savefig 将保存一个新的空图形。
所有这些都搁置了明显的拼写错误,例如嵌套
plt.save_fig()
的使用以及将 new_data 分配给第一个 if 语句中的列子集(即“age”和“Death”),从而删除了第二个 if 语句所需的其他列块。