【发布时间】:2021-02-21 21:27:56
【问题描述】:
我有一个显示随时间增加的百分比的多线图。我想在我的代码中设置一个阈值以具有上限和下限。如果线超出这些范围,我希望线图的特定部分与其父级颜色不同。
这就是我正在做的事情:
import plotly.express as px
import plotly.graph_objects as go
fig = px.line(df14, x = "Date", y = "Percent", color = "id",
title = "id Growth in Percentage (US)",
labels = {"Percent": "Percent Growth"})
fig.update_layout(
font_family="Arial",
font_color="black",
title_font_family="Arial",
title_font_color="black",
legend_title_font_color="black" #style the text (legend, title etc)
)
fig.update_xaxes(title_font_family="Arial") #style ance center title
fig.update_layout(
title={
'text': "id Growth Percentage in US (Line Graph)",
'y':0.9,
'x':0.5,
'xanchor': 'center',
'yanchor': 'top'})
fig.update_traces(mode='markers+lines') #add dots to line
fig.show()
这是视觉效果:
让我放大一行以便更好地解释:
我想为每个 id 设置一个阈值,并且如果线条高于或低于此阈值,那么线条的那部分颜色会有所不同 .例如:
id IAA 的上限可能是 5,IAA 的下限可能是 0。 任何大于 5 或小于 0 的值都会以特定颜色突出显示。
id SSS 的上限可能是 10,SSS 的下限可能是 3 任何大于 10 或小于 3 的值都应以特定颜色突出显示。
我希望每个 id 都有阈值
请看下面:
线条中突出显示的黄色部分反映了折线图超出或降低了设定阈值的位置。使用 Plotly 可以做到这一点吗?
以下是原始数据示例: 更新:
id Start End Diff Percent Date
IAA 4/1/2019 5/1/2019 160.4279 11.10809 04-01-2019 to 05-01-2019
IAA 5/1/2019 6/1/2019 136.0248 8.476798 05-01-2019 to 06-01-2019
IAA 6/1/2019 7/1/2019 174.0513 9.998946 06-01-2019 to 07-01-2019
IAA 7/1/2019 8/1/2019 112.0424 5.851551 07-01-2019 to 08-01-2019
IAA 8/1/2019 9/1/2019 141.8488 6.998691 08-01-2019 to 09-01-2019
IAA 9/1/2019 10/1/2019 103.5522 4.774984 09-01-2019 to 10-01-2019
IAA 10/1/2019 11/1/2019 125.6087 5.528085 10-01-2019 to 11-01-2019
IAA 11/1/2019 12/1/2019 145.2591 6.058016 11-01-2019 to 12-01-2019
IAA 12/1/2019 1/1/2020 115.5121 4.542251 12-01-2019 to 01-01-2020
IAA 1/1/2020 2/1/2020 185.7191 6.985673 01-01-2020 to 02-01-2020
IAA 2/1/2020 3/1/2020 126.7386 4.455896 02-01-2020 to 03-01-2020
IAA 3/1/2020 4/1/2020 231.3461 7.786734 03-01-2020 to 04-01-2020
IAA 4/1/2020 5/1/2020 97.02587 3.02981 04-01-2020 to 05-01-2020
IAA 5/1/2020 6/1/2020 42.85235 1.298792 05-01-2020 to 06-01-2020
IAA 6/1/2020 7/1/2020 124.666 3.729997 06-01-2020 to 07-01-2020
IAA 7/1/2020 8/1/2020 357.9974 10.32609 07-01-2020 to 08-01-2020
IAA 8/1/2020 9/1/2020 490.9587 12.8358 08-01-2020 to 09-01-2020
IAA 9/1/2020 10/1/2020 204.5478 4.739428 09-01-2020 to 10-01-2020
IAA 10/1/2020 11/1/2020 287.6025 6.362292 10-01-2020 to 11-01-2020
SSStest 4/1/2019 5/1/2019 12.38486 5.780551 04-01-2019 to 05-01-2019
SSStest 5/1/2019 6/1/2019 -2.61735 -1.15487 05-01-2019 to 06-01-2019
SSStest 6/1/2019 7/1/2019 -5.6187 -2.50814 06-01-2019 to 07-01-2019
SSStest 7/1/2019 8/1/2019 3.204252 1.467153 07-01-2019 to 08-01-2019
SSStest 8/1/2019 9/1/2019 -25.3782 -11.4521 08-01-2019 to 09-01-2019
SSStest 9/1/2019 10/1/2019 -10.9717 -5.59137 09-01-2019 to 10-01-2019
欢迎提出任何建议
更新
有没有办法让整行显示标记点? 我试过这个:mode = 'markers+lines' 但没有得到想要的结果:
**Update, I have figured this out:**
fig.update_traces(mode='markers+lines')
更新问题:
另外,有没有办法在这里的悬停注释上添加日期和百分比标题?我正在研究 Plotly 文档。
[![在此处输入图片描述][4]][4]
【问题讨论】:
-
我想看看当多个折线图超过或低于某个阈值时,Plotly 是否能够为它们显示不同的颜色。我已经研究了一段时间,并没有提出解决方案。任何输入都会有所帮助。谢谢@vestland
标签: python pandas plotly threshold