首页 > 解决方案 > 从数据中的两个变量中可视化特定信息

问题描述

假设我有这个名为 sample.csv 的 csv 文件:

CODE     AGEGROUP      SEX     CITY      HEALTHSTATUS 
----     ---------     ---     ----      ------------
E101      25 to 29      M      Denver    Recovered
E102      25 to 29      F      Chicago   Recovered
E105      45 to 49      M      Denver    Mild

我想可视化(以条形图显示)根据性别“康复”的人数(因此对于上面的示例,一名男性和一名女性康复)。到目前为止,我的代码仅适用于根据性别和健康状况可视化人数。

这是计算性发生次数的代码要点:

import pandas as pd
import matplotlib.pyplot as plt

fs = 6
plt.style.use("bmh")
fig = plt.figure()

ax0 = plt.subplot(1, 1, 1)
df["SEX"].value_counts().plot(kind="bar", ax=ax0)
ax0.set_xlabel("Sex", fontsize=fs)
ax0.set_ylabel("Number of People", fontsize=fs)
ax0.tick_params(axis='both', labelsize=fs)
ax0.tick_params(axis='x', labelrotation=00)
ax0.set_title("NUMBER OF POSITIVE CASES BY SEX", fontsize=fs)
plt.tight_layout()
plt.show()

我应该如何让程序根据性别可视化“恢复”的数量?

标签: pythonpandascsvmatplotlibvisualization

解决方案


只是改变:

df["SEX"].value_counts().plot(kind="bar", ax=ax0)

至:

df["SEX"][df['HEALTHSTATUS'] == 'Recovered'].value_counts().plot(kind="bar", ax=ax0)

完整代码:

import pandas as pd
import matplotlib.pyplot as plt

fs = 6
plt.style.use("bmh")
fig = plt.figure()

ax0 = plt.subplot(1, 1, 1)
df["SEX"][df['HEALTHSTATUS'] == 'Recovered'].value_counts().plot(kind="bar", ax=ax0)
ax0.set_xlabel("Sex", fontsize=fs)
ax0.set_ylabel("Number of People", fontsize=fs)
ax0.tick_params(axis='both', labelsize=fs)
ax0.tick_params(axis='x', labelrotation=00)
ax0.set_title("NUMBER OF POSITIVE CASES BY SEX", fontsize=fs)
plt.tight_layout()

在此处输入图像描述


推荐阅读