使用开始日期和结束日期绘制线条
Plotly lines using start and end dates
我有一个包含以下列的 DataFrame:开始日期、结束日期 和 值.如何在 Plotly 中为每个 开始-结束日期 绘制一条线?
示例:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({"start date": [1,2,3,4], "end date":[8,7,4,9], "value":[11,3,11,4]})
fig = px.line(df, x=["start date","end date"], y="value")
fig.show()
在这种情况下,开始日期 和结束日期 列只有两行。但是,我正在寻找的是每个 开始-结束日期 的 1 行。我尝试使用参数 color="value" 但是,在值 11 中它只绘制 1 行。我可以用简单的 plt 打印出来:
import matplotlib.pyplot as plt
x = [df["start date"], df["end date"]]
y = [df["value"], df["value"]]
plt.plot(x, y)
plt.show()
实际上您的绘图包含 y=11
处的两条线,但它们是蓝色和绿色的,因此很难区分。但您可以使用自定义颜色,例如:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
colors = ['blue', 'red', 'yellow', 'green']
for x1, x2, y, c in zip(df["start date"], df["end date"], df["value"], colors):
plt.plot([x1, x2], [y, y], color=c)
要创建多个 'indepent' 行,您必须创建多个跟踪,如下例所示:
import pandas as pd
import plotly.graph_objs as go
df = pd.DataFrame({"start date": [1,2,3,4], "end date":[8,7,4,9], "value":[11,3,11,4]})
fig = go.Figure()
for (start, end, value) in zip(df["start date"], df["end date"], df["value"]):
name = f"{start} to {end}"
fig.add_trace(go.Scatter(x=[start, end], y=[value, value],
mode='lines', name = name))
fig.show()
结果是:
我有一个包含以下列的 DataFrame:开始日期、结束日期 和 值.如何在 Plotly 中为每个 开始-结束日期 绘制一条线?
示例:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({"start date": [1,2,3,4], "end date":[8,7,4,9], "value":[11,3,11,4]})
fig = px.line(df, x=["start date","end date"], y="value")
fig.show()
在这种情况下,开始日期 和结束日期 列只有两行。但是,我正在寻找的是每个 开始-结束日期 的 1 行。我尝试使用参数 color="value" 但是,在值 11 中它只绘制 1 行。我可以用简单的 plt 打印出来:
import matplotlib.pyplot as plt
x = [df["start date"], df["end date"]]
y = [df["value"], df["value"]]
plt.plot(x, y)
plt.show()
实际上您的绘图包含 y=11
处的两条线,但它们是蓝色和绿色的,因此很难区分。但您可以使用自定义颜色,例如:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
colors = ['blue', 'red', 'yellow', 'green']
for x1, x2, y, c in zip(df["start date"], df["end date"], df["value"], colors):
plt.plot([x1, x2], [y, y], color=c)
要创建多个 'indepent' 行,您必须创建多个跟踪,如下例所示:
import pandas as pd
import plotly.graph_objs as go
df = pd.DataFrame({"start date": [1,2,3,4], "end date":[8,7,4,9], "value":[11,3,11,4]})
fig = go.Figure()
for (start, end, value) in zip(df["start date"], df["end date"], df["value"]):
name = f"{start} to {end}"
fig.add_trace(go.Scatter(x=[start, end], y=[value, value],
mode='lines', name = name))
fig.show()
结果是: