这是我的 graph_objects 代码-
go.Figure(go.Scatter(x=continent_df.date, y=continent_df.new_cases_smoothed))
![enter image description here](https://i.stack.imgur.com/xyKji.png)
而我的情节表达代码是这样的 -
px.line(continent_df, x='date', y='new_cases_smoothed', color='continent')
![enter image description here](https://i.stack.imgur.com/8L4Wt.png)
为什么第一张图为每个大陆打印了额外的直线?我已经尝试对数据框进行排序。
continent_df.sort_values(['continent','date'], inplace=True)
(另外,如何像第二个图中那样对第一个图中的每一行进行颜色编码?)
如果没有正确的数据样本,我无法 100% 确定。但您的数据集似乎是长格式,其中包含多个值continent_df.new_cases_smoothed
属于不同的大陆。您可以使用以下命令将所有这些值分配给一个跟踪go.Figure(go.Scatter(x=continent_df.date, y=continent_df.new_cases_smoothed))
.
之所以有直线,是因为只有一条线来回走动,涵盖了所有类别和所有索引。当返回到开头并开始显示新类别时,会出现直线的直线部分
然而,使用px.line
这里通过使用以下方法对各大洲进行分组来解决这个问题color='continent'
。从而使价值类别表现为独特的痕迹。
我们可以使用 gapminder 数据集(其结构与现实世界数据类似)来说明如何将各个迹线分配给go.Figure
using fig.add_traces(go.Scatter())
。关键是检索唯一的类别、对数据进行子集化并逐行添加组。与使用相比,这无疑为您提供了更大的灵活性px.line
.
Plot
![enter image description here](https://i.stack.imgur.com/fEmYy.png)
Code
import plotly.graph_objs as go
import plotly.express as px
import pandas as pd
# Data
gap = px.data.gapminder()
fig = go.Figure()
for c in gap['country'].unique()[:10]:
df = gap[gap['country']==c]
fig.add_traces(go.Scatter(x=df['year'], y = df['lifeExp'], name = c))
fig.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)