从布尔值中获取条形图?
Posted
技术标签:
【中文标题】从布尔值中获取条形图?【英文标题】:Obtain a barplot from boolean values? 【发布时间】:2021-04-26 19:12:46 【问题描述】:我遇到了一些问题。这是我的数据框:
Students Subject Mark
1 M F 7 4 3 7
2 I 5 6
3 M F I S 2 3 0
4 M 2 2
5 F M I 5 1
6 I M F 6 2 3
7 I M 7
我想绘制一个带有四个“条”的条形图,供学生遵守以下四个条件:
“主题”列中有 3 个或更多字母 “标记”列中至少有一个 3 两全其美 一无所有起初我被卡住了,但有人建议我这样做:
df["Subject"].str.count("\w+") >= 3
df["Mark"].str.count("3") >= 1
(df["Subject"].str.count("\w+") >= 3) & (df["Mark"].str.count("3") >= 1)
我得到的是三个布尔列,但我不知道如何从这里开始绘制条形图。
我正在考虑计算每列中的值,但我似乎找不到这样做的方法,因为我似乎无法将 value_counts()
应用于布尔列。
如果你有任何想法,请帮忙!
【问题讨论】:
【参考方案1】:我认为您需要使用所有 4 个掩码创建 DataFrame,然后按 sum
和最后一个情节计算 True
s:
m1 = df["Subject"].str.count("\w+") >= 3
m2 = df["Mark"].str.count("3") >= 1
df1 = pd.concat([m1, m2, m1 & m2, ~m1 & ~m2], axis=1, keys=('a','b','c','d'))
out = df1.sum()
如果需要海运解决方案:
import seaborn as sns
ax = sns.barplot(x="index", y="val", data=out.reset_index(name='val'))
对于熊猫(matplotlib)的解决方案:
out.plot.bar()
【讨论】:
以上是关于从布尔值中获取条形图?的主要内容,如果未能解决你的问题,请参考以下文章
R Shiny 如何在根据用户选择从 mysqlDB 检索数据时使用 renderPlot 构建条形图
数据可视化实例(十五):有序条形图(matplotlib,pandas)
绑定到 NSArrayController 的 core-plot 条形图
R语言使用ggpubr包的ggbarplot函数可视化排序条形图(自定义填充色自定义条形边缘色自定义调色板条形图全局排序从大到小文本标签角度)