仅在 Jupyter 中显示 1 个子组的 Plotly 动画条形图

Plotly Animated Bar Graph Showing 1 subgroup only in Jupyter

问题: 当我 运行 我的代码只显示一个状态(子组)。数据集很简单,创建日期、状态和计数。我只能认为此时我的数据集可能有问题。为什么它只显示我拥有的三个状态中的一个状态,或者它可能更适合托管文件?它似乎只是遍历列表,直到最后才保持每个数据点完好无损。另一个代码块在 github.

上运行良好

我的数据集样本:

Status,Create Date,Count
None,17-Apr-12,8
None,30-Apr-12,9
None,23-Aug-12,10
None,3-Oct-12,11
None,9-Jan-13,12
None,29-Jan-13,13
QBOS,31-Jan-13,1
QBDS,1-Feb-13,1

我的代码:

import numpy as np
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px

df = pd.read_csv('qb7.csv')
df.columns = ['Status','Create Date','Count']
includes=['None','QBDS', 'QBOS']
df=df[df['Status'].isin(includes)]
df['Create Date']= pd.to_datetime(df['Create Date']).dt.strftime('%Y-%m-%d')
fig = px.bar(df,
         x="Status", 
         y="Count",
         color="Status",
         animation_frame="Create Date", hover_name="Status", 
         range_y=[0,8000])
fig.show()

``

我想制作的样品:

import numpy as np
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px

df = pd.read_csv('https://raw.githubusercontent.com/shinokada/covid-19-stats/master/data/daily-new- 
confirmed-cases-of-covid-19-tests-per-case.csv')
df.columns = ['Country','Code','Date','Confirmed','Days since confirmed']
includes=['United States','Russia', 'India','Brazil']
df=df[df['Country'].isin(includes)]
df['Date']= pd.to_datetime(df['Date']).dt.strftime('%Y-%m-%d')
fig = px.bar(df, x="Country", y="Confirmed", color="Country",
animation_frame="Date", animation_group="Country", range_y=[0,35000])
fig.show()`

我认为它没有显示预期图表的原因是数据数量不同。当数据数量对齐时达到预期结果。

import pandas as pd
import numpy as np
import io

data = '''
Status,Create Date,Count
None,17-Apr-12,8
None,30-Apr-12,9
None,23-Aug-12,10
None,3-Oct-12,11
None,9-Jan-13,12
None,29-Jan-13,13
QBOS,17-Apr-12,8
QBOS,30-Apr-12,9
QBOS,23-Aug-12,10
QBOS,3-Oct-12,11
QBOS,9-Jan-13,12
QBOS,29-Jan-13,13
QBDS,17-Apr-12,8
QBDS,30-Apr-12,9
QBDS,23-Aug-12,10
QBDS,3-Oct-12,11
QBDS,9-Jan-13,12
QBDS,29-Jan-13,13
'''

df = pd.read_csv(io.StringIO(data), sep=',')

import plotly.graph_objects as go
import plotly.express as px

# df = pd.read_csv('qb7.csv')
df.columns = ['Status','Create Date','Count']
includes=['None','QBDS', 'QBOS']
df=df[df['Status'].isin(includes)]
df['Create Date']= pd.to_datetime(df['Create Date']).dt.strftime('%Y-%m-%d')

fig = px.bar(df,
         x="Status", 
         y="Count",
         color="Status",
         animation_frame="Create Date", hover_name="Status", 
         range_y=[0,30])

fig.show()