Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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
Python seaborn未在条形图中着色条_Python_Plot_Bar Chart_Data Visualization_Seaborn - Fatal编程技术网

Python seaborn未在条形图中着色条

Python seaborn未在条形图中着色条,python,plot,bar-chart,data-visualization,seaborn,Python,Plot,Bar Chart,Data Visualization,Seaborn,我已经开始写论文了,我已经有问题了。 我试图做一个约250条的酒吧图,但似乎seaborn并没有为大多数酒吧显示颜色。我以为它可以在调色板中循环-但它只是显示白色。如果我取一个较小的样本(我想最多99个),每个条都是彩色的。 即使只有一种颜色(不是调色板),也会显示白色条 有人能帮我吗? 下面是代码和图表: 谢谢大家! 下面是一段测试seaborn调色板的代码: import numpy as np import matplotlib import matplotlib.pyplot as p

我已经开始写论文了,我已经有问题了。 我试图做一个约250条的酒吧图,但似乎seaborn并没有为大多数酒吧显示颜色。我以为它可以在调色板中循环-但它只是显示白色。如果我取一个较小的样本(我想最多99个),每个条都是彩色的。 即使只有一种颜色(不是调色板),也会显示白色条

有人能帮我吗? 下面是代码和图表:


谢谢大家!

下面是一段测试seaborn调色板的代码:

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

print("Seaborn version : {0}".format(sb.__version__))
# Seaborn version : 0.10.0

print("Matplotlib version : {0}".format(matplotlib.__version__))
# Matplotlib version : 3.1.3
只是想让你知道它与这些版本一起工作

# simple color test without palette
n = 1000
x = np.arange(1,n+1,1)
y = np.random.randint(-100,100,n)*np.random.random(n)
sb.barplot(x,y)
plt.xticks([])
plt.show()

因此,它似乎与我的代码数组一起工作

也许:

  • seaborn无法理解您的数据(请检查数据帧?)

  • 您的seaborn或matplotlib版本有错误(请尝试pip安装seaborn==0.10.0和pip安装matplotlib==3.1.3)

  • 你可以试试另一种颜色

希望这有帮助

编辑: 多亏了@ImportanceOfBeingErnest,我想我理解了你的问题。它来自此样式,只需注释/取消注释即可查看结果

# sb.set_style("darkgrid")
遗憾的是,我没有找到任何与darkgrid样式相关的kwargs选项来删除bug。。。因此,我建议我们手动重新创建此样式

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.set_facecolor('whitesmoke')
# background color
ax.grid(color='white', linestyle='-', linewidth=1)
# the grid
sb.barplot(x,y,zorder=2, palette=sb.color_palette("RdBu",n_colors=7))
#zorder=2 to draw above the grid
plt.xticks([])
plt.show()

下面是一段代码,用于测试seaborn的调色板:

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

print("Seaborn version : {0}".format(sb.__version__))
# Seaborn version : 0.10.0

print("Matplotlib version : {0}".format(matplotlib.__version__))
# Matplotlib version : 3.1.3
只是想让你知道它与这些版本一起工作

# simple color test without palette
n = 1000
x = np.arange(1,n+1,1)
y = np.random.randint(-100,100,n)*np.random.random(n)
sb.barplot(x,y)
plt.xticks([])
plt.show()

因此,它似乎与我的代码数组一起工作

也许:

  • seaborn无法理解您的数据(请检查数据帧?)

  • 您的seaborn或matplotlib版本有错误(请尝试pip安装seaborn==0.10.0和pip安装matplotlib==3.1.3)

  • 你可以试试另一种颜色

希望这有帮助

编辑: 多亏了@ImportanceOfBeingErnest,我想我理解了你的问题。它来自此样式,只需注释/取消注释即可查看结果

# sb.set_style("darkgrid")
遗憾的是,我没有找到任何与darkgrid样式相关的kwargs选项来删除bug。。。因此,我建议我们手动重新创建此样式

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.set_facecolor('whitesmoke')
# background color
ax.grid(color='white', linestyle='-', linewidth=1)
# the grid
sb.barplot(x,y,zorder=2, palette=sb.color_palette("RdBu",n_colors=7))
#zorder=2 to draw above the grid
plt.xticks([])
plt.show()

我认为出现这个问题的原因是,默认情况下,在
seaborn
中,
条形图中的条形图用一条细的白色边界线勾勒出来。当酒吧本身是非常薄的白色边界是唯一的东西,你看到的。尝试将plot命令更改为:

g = sb.barplot(x = x, y = y, palette = sb.color_palette("RdBu", n_colors=7), lw=0.)

lw=0。
删除了边界线,然后您应该可以看到条形图的颜色。

我认为出现此问题的原因是,在
seaborn
中,默认情况下,
barplot
中的条形图用细白色边界线勾勒出来。当酒吧本身是非常薄的白色边界是唯一的东西,你看到的。尝试将plot命令更改为:

g = sb.barplot(x = x, y = y, palette = sb.color_palette("RdBu", n_colors=7), lw=0.)

lw=0。
删除了边界线,然后您应该可以看到条形图的颜色。

要再现OP的案例,请使用
sns.set_style(“darkgrid”)
。我试图更新这两个库,但没有解决问题。可能是我的数据集?这是它的一张照片。[1] :图形仅取第一行和除最后一行以外的所有列。老实说,我不明白为什么会有问题。(调色板没有那么重要,但非常感谢您的代码!)您是否尝试删除“样式”行sb.set_style(…)?也许我的编辑不清楚;有了这条线,所有的条都是白色的。样式可能会覆盖一些属性,比如条颜色。我做到了!即使只是给某人留着条形图(x,y),它们也是白色的。哎哟!如果您有兴趣,我们最终可以绕过seaborn,使用奇特的matplotlib重建图形?要再现OP的案例,请使用
sns.set_style(“darkgrid”)
。我尝试更新这两个库,但没有解决问题。可能是我的数据集?这是它的一张照片。[1] :图形仅取第一行和除最后一行以外的所有列。老实说,我不明白为什么会有问题。(调色板没有那么重要,但非常感谢您的代码!)您是否尝试删除“样式”行sb.set_style(…)?也许我的编辑不清楚;有了这条线,所有的条都是白色的。样式可能会覆盖一些属性,比如条颜色。我做到了!即使只是给某人留着条形图(x,y),它们也是白色的。哎哟!如果您感兴趣,我们最终可以绕过seaborn,用精美的matplotlib重建图形?