Plotly Express 绘图的颜色变淡了。

6

我在Jupyter笔记本中使用plotly express时遇到问题。图表中的颜色变淡,与图例中的颜色不匹配,实际上它们应该是相同的。有人有什么建议吗?我很乐意提供更多信息,但我还不确定哪些信息是有用的 - 我对Python还很陌生。

在此输入图片描述

fig = px.bar(funded_apps_mask_kewt, x='Grant Expended CY Quarter', y='Grant 
Expended Amount', color='AMI Status',title='Long-Form Input')
fig.update_xaxes(categoryorder='category ascending')
fig.show()


AMI Statu | Grant Exp | Grant Exp Q | Grant Exp Q | Grant Exp Year | Grant Exp QY
0 Very Low (50%)    20086.72 Q4 2020    Q4              2020           2020 Q4
1 Urgent Need (120%)20086.7  Q4 2020    Q4              2020           2020 Q4
2 Urgent Need (120%)20086.72 Q4 2020    Q4              2020           2020 Q4
3 Very Low (50%)    20086.72 Q4 2020    Q4              2020           2020 Q4
4 Low (80%)         20086.72 Q4 2020    Q4              2020           2020 Q4
5 Low (80%)         20086.72 Q4 2020    Q4              2020           2020 Q4
6 Low (80%)         20086.72 Q4 2020    Q4              2020           2020 Q4
82Low (80%)         35602.75 Q1 2021    Q1              2021           2021 Q1

这是我的数据样本。我更改了列名以适应表格宽度,但我使用的列是“AMI状态”、“授权期满”和“授权期满季度”。它有约7K行。

1
这很奇怪。除非不透明度已经被设置,否则我不会期望出现这种行为。你能否提供一个DataFrame的样本,以便我们尝试重现你的问题? - Derek O
@DerekO 我已经编辑了帖子,并提供了数据样本。谢谢! - nateswill
更新 - 当我使用包含10行数据的样本时,颜色不会褪色 - 只有在使用大量行时才会出现这种情况。 - nateswill
1
更新 - 我通过使用groupby()创建一个新的数据框,通过'Grant Exp QY'和'AMI状态'的总和来解决了这个问题。这样可以消除成千上万个数据块中的白线,使颜色看起来更浅,并且我的新数据框只有大约30行。当有太多数据点时,白色边框线会导致此问题并使颜色看起来褪色。 - nateswill
啊,现在我明白了!你应该把你所做的事情发布为一个答案,然后接受你自己的答案,这样有类似问题的人也可以解决它 :) - Derek O
1个回答

8
这是因为柱形图的轮廓线,可以通过将marker.line.width属性设置为0来删除它们:
fig.update_traces(dict(marker_line_width=0))

1
我也遇到了同样的问题,但为什么它突然发生了呢?我已经使用Plotly很长一段时间了,但以前从未见过。我将来在所有Jupyter笔记本中都需要这样做吗? - yts61
在 fig.show() 之前添加这个代码对我有用,感谢修复。 - Chandana N T
还有一件事,通过update_traces()方法所做的更改在通过fig.write_image()保存为图像时不会反映出来,但如果使用fig.write_html()则会反映出来。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接