可视化在 matplotlib/seaborn 中有意义的数值与分类数据
Posted
技术标签:
【中文标题】可视化在 matplotlib/seaborn 中有意义的数值与分类数据【英文标题】:Visualize numerical vs categorical data that makes sense in matplotlib/seaborn 【发布时间】:2020-05-01 06:28:09 【问题描述】:我有 income
列,它有不同的 1000 个值,范围从 10-10000 和另一个分类列 alcoholic
这是是/否 2 类别列。两者之间的关系是什么,如何看出?
sns.catplot
使用 stripplot
或 swarm
仅显示 2 条直线。
如何在regplot
或scatterplot
中找到两者之间的关系以获取数值?
【问题讨论】:
这里不太适合。无论如何,可能是一个显示每个平均值的条形图。就可视化而言,您无法从虚拟变量中得到什么。如果你想可视化三个变量,你可以使用alcoholic
as hue
这是我的 Y 标签。我想看看那些挣得更多、喝得更多的人。我的意思是可能会有一些解决方法,将income
放在单独的垃圾箱中,以查看哪个类别的饮料更多。我目前正在使用bar
和df['income']
与range(len(df['income']))
和alcoholic
的散点图作为色调
【参考方案1】:
我会使用 seaborn 库中的 violin plot 或 boxplot。这是一个sn-p:
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
income = list(np.random.normal(4000, 1500, 500)) + list(np.random.normal(7000, 800, 500))
alcoholic = ['no']*500 + ['yes']*500
df = pd.DataFrame('income':income, 'alcoholic':alcoholic)
sns.violinplot(data=df, x='alcoholic', y='income')
sns.boxplot(data=df, x='alcoholic', y='income')
【讨论】:
如果我使用sns.catplot(x="alcoholic", y="income", kind='bar',data=df)
,那么它将显示酒吧的最大高度为alcoholic
2500 左右的高度和1500 左右的非酒精高度。那说明什么?我的意思是,中位数,模式,最大值都不同于 2500
我只是随机编的数据。使用相同的数据集,它应该会显示相同的平均值和其他时刻:)以上是关于可视化在 matplotlib/seaborn 中有意义的数值与分类数据的主要内容,如果未能解决你的问题,请参考以下文章
可视化在 matplotlib/seaborn 中有意义的数值与分类数据
不写代码,拖拖拽拽也可使用 Matplotlib/Seaborn 可视化!