Plotly:如何使用 plotly.graph_objects 制作由变量着色的折线图?
Plotly: How to make line charts colored by a variable using plotly.graph_objects?
我正在制作下面的折线图。我想用变量 Continent
使线条着色。我知道使用 plotly.express
可以轻松完成
有谁知道我如何使用 plotly.graph_objects
做到这一点?我尝试添加 color=gapminder['Continent']
,但没有成功。
非常感谢您的提前帮助。
import plotly.express as px
gapminder = px.data.gapminder()
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter(x=gapminder['year'], y=gapminder['lifeExp'],
mode='lines+markers'))
fig.show()
使用 color=gapminder['Continent']
之类的方法通常适用于散点图,在散点图中,您使用第三个变量为现有点定义类别。您正在尝试在此处绘制 line 绘图。这意味着您不仅每个大陆都有 color,而且每个大陆都有 line。如果这实际上是您的目标,那么这里有一种方法:
剧情:
代码:
import plotly.graph_objects as go
import plotly.express as px
# get data
df_gapminder = px.data.gapminder()
# manage data
df_gapminder_continent = df_gapminder.groupby(['continent', 'year']).mean().reset_index()
df = df_gapminder_continent.pivot(index='year', columns='continent', values = 'lifeExp')
df.tail()
# plotly setup and traces
fig = go.Figure()
for col in df.columns:
fig.add_trace(go.Scatter(x=df.index, y=df[col].values,
name = col,
mode = 'lines'))
# format and show figure
fig.update_layout(height=800, width=1000)
fig.show()
我正在制作下面的折线图。我想用变量 Continent
使线条着色。我知道使用 plotly.express
有谁知道我如何使用 plotly.graph_objects
做到这一点?我尝试添加 color=gapminder['Continent']
,但没有成功。
非常感谢您的提前帮助。
import plotly.express as px
gapminder = px.data.gapminder()
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter(x=gapminder['year'], y=gapminder['lifeExp'],
mode='lines+markers'))
fig.show()
使用 color=gapminder['Continent']
之类的方法通常适用于散点图,在散点图中,您使用第三个变量为现有点定义类别。您正在尝试在此处绘制 line 绘图。这意味着您不仅每个大陆都有 color,而且每个大陆都有 line。如果这实际上是您的目标,那么这里有一种方法:
剧情:
代码:
import plotly.graph_objects as go
import plotly.express as px
# get data
df_gapminder = px.data.gapminder()
# manage data
df_gapminder_continent = df_gapminder.groupby(['continent', 'year']).mean().reset_index()
df = df_gapminder_continent.pivot(index='year', columns='continent', values = 'lifeExp')
df.tail()
# plotly setup and traces
fig = go.Figure()
for col in df.columns:
fig.add_trace(go.Scatter(x=df.index, y=df[col].values,
name = col,
mode = 'lines'))
# format and show figure
fig.update_layout(height=800, width=1000)
fig.show()