Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matplotlib 使用Seaborn创建条形图_Matplotlib_Seaborn - Fatal编程技术网

Matplotlib 使用Seaborn创建条形图

Matplotlib 使用Seaborn创建条形图,matplotlib,seaborn,Matplotlib,Seaborn,我试图用seaborn绘制条形图。样本数据: x=[1,1000,1001] y=[200,300,400] cat=['first','second','third'] df = pd.DataFrame(dict(x=x, y=y,cat=cat)) 当我使用: sns.factorplot("x","y", data=df,kind="bar",palette="Blues",size=6,aspect=2,

我试图用seaborn绘制条形图。样本数据:

x=[1,1000,1001]
y=[200,300,400]
cat=['first','second','third']
df = pd.DataFrame(dict(x=x, y=y,cat=cat))
当我使用:

sns.factorplot("x","y", data=df,kind="bar",palette="Blues",size=6,aspect=2,legend_out=False);
所产生的数字是

当我添加图例时

sns.factorplot("x","y", data=df,hue="cat",kind="bar",palette="Blues",size=6,aspect=2,legend_out=False);
结果图如下所示

如您所见,该条已从该值移动。我不知道如何获得与第一个图中相同的布局并添加图例


我不一定喜欢seaborn,我喜欢调色板,但任何其他方法都适合我。唯一的要求是图看起来像第一个,并且有图例。

看起来这个问题出现在这里-来自文档

色调:字符串,可选

数据中用于按颜色拆分打印的变量名。对于``kind=“bar
,这也会影响x轴上的位置

因此,由于seaborn使用matplotlib,您可以这样做:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x=[1,1000,1001]
y=[200,300,400]
sns.set_context(rc={"figure.figsize": (8, 4)})
nd = np.arange(3)
width=0.8
plt.xticks(nd+width/2., ('1','1000','1001'))
plt.xlim(-0.15,3)
fig = plt.bar(nd, y, color=sns.color_palette("Blues",3))
plt.legend(fig, ['First','Second','Third'], loc = "upper left", title = "cat")
plt.show()


添加了@mwaskom获取三种sns颜色的方法。

您的“当我添加图例时”代码行不会添加图例。您可以通过执行
sns.color\u palete(“Blues”,3)
来获取该调色板中的颜色。提示不错,@mwaskom!我将把它添加到下面的答案中。