我有一个瀑布图,我想分别设置每个条形的颜色(第一个为蓝色,第二个、第三个和第四个为红色,第五个为绿色,第六个为蓝色)。图表中所有的相关条都是递增的,而plotly只允许你设置递增、递减和总计三种颜色。有什么办法可以做我想做的事吗?
import plotly.graph_objects as go
fig = go.Figure(go.Waterfall(
name = "20", orientation = "v",
measure = ["relative", "relative", "relative", "relative", "relative", "total"],
x = ["Buy", "Transaction Cost", "Remodeling Cost", "Ownership Cost", "Gain", "Sell"],
textposition = "outside",
text = ["$200", "$14", "$45", "$5", "$86", "$350"],
y = [200, 14, 45, 5, 86, 350],
connector = {"visible": False}
))
fig.show()
Run Code Online (Sandbox Code Playgroud)
正如我所说,我希望条形图的颜色是:
blue for the first one, red for the 2nd, 3rd, and 4th one, green for 5th one, and blue for 6th one
Ploty 瀑布图栏颜色自定义。正如 OP 所提到的,目前 plotly 支持自定义条形颜色以减少、增加和总计。
在 OP 的示例中,要制作条形的颜色(蓝色、红色、红色、红色、绿色、蓝色):
increasing属性中设置标记颜色为红色totals属性中设置标记颜色为蓝色.add_shape()import plotly.graph_objects as go
fig = go.Figure(go.Waterfall(
name = "20", orientation = "v",
measure = ["relative", "relative", "relative", "relative", "relative", "total"],
x = ["Buy", "Transaction Cost", "Remodeling Cost", "Ownership Cost", "Gain", "Sell"],
textposition = "outside",
text = ["$200", "$14", "$45", "$5", "$86", "$350"],
y = [200, 14, 45, 5, 86, 350],
increasing = {"marker":{"color":"red"}},
totals = {"marker":{"color":"blue"}},
connector = {"visible": False}
))
fig.add_shape(
type="rect", fillcolor="blue", line=dict(color="blue"), opacity=1,
x0=-0.4, x1=0.4, xref="x", y0=0.0, y1=fig.data[0].y[0], yref="y"
)
fig.add_shape(
type="rect", fillcolor="green", line=dict(color="green"), opacity=1,
x0=3.6, x1=4.4, xref="x",
y0=fig.data[0].y[-1] - fig.data[0].y[-2], y1=fig.data[0].y[-1], yref="y"
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
这将产生 OP 想要的结果

| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |