python - 当我只传递没有 x、y 数据参数的整个数据帧时,箱形图显示什么结果?
问题描述
我正在使用 python 库学习可视化。我正在玩内置的“提示”数据集。我注意到即使我没有提供任何参数,例如 x = 、 y= 、 data =,seaborn 也会绘制数据。这是我尝试过的:
import pandas as pd
import seaborn as sns
tips_data = sns.load_dataset("tips")
tips_data.head()
sns.boxplot(tips_data.iloc[:,[0,1]])
sns.boxplot(data=tips_data.iloc[:,[0,1]])
如果您运行这些命令,您会注意到第一个箱线图命令绘制了一个箱线图,该箱线图与任一列的箱线图、均值或总和不同。
第二个箱线图命令正确,在相同的轴上绘制了两个箱线图——一个用于提示,另一个用于 total_bill。
当没有指定参数 arg 时,有人可以告诉我们究竟在绘制什么吗?
我试着在这里查看 seaborn 文档!但没有找到答案。
解决方案
情况1
sns.boxplot(tips_data.iloc[:,[0,1]])
相当于
sns.boxplot(x=tips_data.iloc[:,[0,1]])
即,第一个论点是x
。这被解释为输入中的所有数据都将沿 x 轴分布。更容易理解的是,这可能是两列的扁平二维数组,
sns.boxplot(x=tips_data.iloc[:,[0,1]].values.flatten())
案例2
如果改为使用sns.boxplot(data=tips_data.iloc[:,[0,1]])
,则不给出x
和y
。因此,它们需要被解释,这是按列完成的。然后,您将获得每列一个箱线图。
该文档指出:
输入数据可以以多种格式传递,包括:
- 表示为列表、numpy 数组或 pandas Series 对象的数据向量直接传递给 x、y 和/或 hue 参数。[情况1]
- “长格式” DataFrame,在这种情况下,x、y 和色调变量将决定数据的绘制方式。
- 一个“宽格式”的 DataFrame,这样每个数字列都会被绘制出来。一个数组或向量列表。【案例二】
我从文档中的问题中标记了两个案例。
推荐阅读
- reactjs - 如何使用 React Router 混合使用父子路由正确路由
- r - modCost 中的错误(obs = world_data,model = out):在 R 中找不到对象“world_data”
- python - 计算余弦相似度:ValueError: Input must be 1- or 2-d
- jboss - PersistenceException / HibernateException:事务在不同的线程中回滚
- python - int() 参数必须是字符串、类似字节的对象或数字,而不是 'NoneType' Django 表单
- laravel - 如何在windows中输入php artisan serve linux?
- r - plot.new() 中的错误:闪亮应用中的图形边距太大
- wpf - ClickOnce - 部署中的引用与应用程序清单中定义的身份不匹配
- reactjs - 从对象数组填充表示 SVG 的功能组件
- c# - 按下按钮时跳转(unity 2D)