Python中的seaborn:barplot颠倒出现

2024-04-18 23:00:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学习seaborn,我得到了一些意想不到的行为。在

这个可复制的示例使用调查.csv可在此链接中找到的数据集:http://www.datacarpentry.org/python-ecology-lesson/setup/

我的代码如下:

import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="whitegrid", color_codes=True)

surveys_df = pd.read_csv("surveys.csv")
avg_weight = surveys_df.groupby("plot_id")["weight"].mean().to_frame()
avg_weight
    weight
plot_id 
1   51.822911
2   52.251688
3   32.654386
4   47.928189
5   40.947802
6   36.738893
7   20.663009
8   47.758001
9   51.432358
10  18.541219
11  43.451757
12  49.496169
13  40.445660
14  46.277199
15  27.042578
16  24.585417
17  47.889593
18  40.005922
19  21.105166
20  48.665303
21  24.627794
22  54.146379
23  19.634146
24  43.679167

sns.barplot(x = avg_weight.index.values, y = "weight", 
            data = avg_weight, palette = sns.palplot(sns.diverging_palette(150, 275, s=80, l=55, n=9)))
plt.xlabel('Animal id')
plt.ylabel('Average Weight')
plt.title('Average Weight by Animal')

enter image description here

条形图显示为倒置。在

为什么会发生这种情况?我如何纠正它?在

你的建议将不胜感激。在

PS:这个问题与传递给palete参数的值有关,当我选择palette = sns.color_palette("coolwarm", 7)时,这个问题就解决了。但我还是不明白为什么。在


Tags: csvimportiddfmatplotlibaspltseaborn
1条回答
网友
1楼 · 发布于 2024-04-18 23:00:28

通过调用^{},您正在绘制另一个绘图,这会导致图形属性设置不正确。去掉它,你应该表现得很好:

sns.barplot(x = avg_weight.index.values, y = "weight", 
            data = avg_weight, palette = sns.diverging_palette(150, 275, s=80, l=55, n=9))
plt.xlabel('Animal id')
plt.ylabel('Average Weight')
plt.title('Average Weight by Animal')

enter image description here

相关问题 更多 >