我想用变量x绘制变量y的频率,为此,我使用了seaborn.countplot()方法。但是,我收到了一个错误消息。
关于一个可复制的示例,请参见下面的内容:
surveys_species_by_plot_sample
plot_id taxa
0 1 Bird
1 1 Rabbit
2 1 Rodent
3 2 Bird
4 2 Rabbit
5 2 Reptile
6 2 Rodent
7 3 Bird
8 3 Rabbit
9 3 Rodent
现在的目的是用plot_id绘制分类群(鸟、兔等)的数量。我使用以下命令:
sn.countplot(x = "plot_id", y = "taxa", data = surveys_species_by_plot_sample,
palette = sn.color_palette(palette = ["SteelBlue" , "Salmon"], n_colors = 4))
我收到以下错误消息:
TypeError: Cannot pass values for both `x` and `y`
我不明白,因为文档指出,x和y变量都可以传递给函数:
参数: x,y,hue :数据或矢量数据中变量的名称,用于绘制长格式数据的可选输入。有关解释,请参阅示例。 数据: DataFrame、数组或数组列表、用于绘图的可选数据集。如果x和y不存在,则解释为宽形式。否则,它将是长形式的。
您的建议将不胜感激。
发布于 2017-11-29 00:04:04
阅读文档中的示例,您只能传递x或y,而不能两者都传递。声明X或Y会改变图表的方向。你可能需要一个不同的图表类型。
发布于 2022-10-19 11:04:00
如果你想在你的绘图中同时使用x和y,你不能使用计数图,而应该使用sn.barplot :)
sn.barplot(x = "plot_id",y= "taxa",data = surveys_species_by_plot_sample,palette = sn.color_palette(palette = "SteelBlue“,"Salmon",n_colors = 4))
https://stackoverflow.com/questions/47547235
复制相似问题