我正在使用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]])
如果运行这些命令,您会注意到第一个boxplot命令绘制的是一个单一的箱形图,这与列,均值或总和的箱形图都不相同。
第二个箱形图命令正确,在相同的轴上绘制两个箱形图-一个用于提示,另一个用于total_bill。
当没有指定参数arg时,有人可以告诉正在绘制的图形吗?
我尝试签出原始文档here!但没有找到答案。
答案 0 :(得分:1)
案例1
myService.subscribe()
等同于
sns.boxplot(tips_data.iloc[:,[0,1]])
即第一个参数为sns.boxplot(x=tips_data.iloc[:,[0,1]])
。这被解释为输入中的所有数据都将沿x轴分布。可以理解的是,这可能是两列中的扁平2D阵列,
x
案例2
如果改为使用sns.boxplot(x=tips_data.iloc[:,[0,1]].values.flatten())
,则不会给出sns.boxplot(data=tips_data.iloc[:,[0,1]])
和x
。因此,需要对它们进行解释,这是按列进行的。然后,您将获得每列一个箱形图。
文档指出:
输入数据可以多种格式传递,包括:
- 直接表示为x,y和/或hue参数的表示为列表,numpy数组或pandas Series对象的数据向量。 [案例1]
- “长格式” DataFrame,在这种情况下,x,y和hue变量将决定如何绘制数据。
- 一个“宽格式” DataFrame,这样将绘制每个数字列。 向量的数组或列表。 [案例2]
我在文档中从问题中标记了两种情况。