【问题标题】:Plotly Animated Bar Graph Showing 1 subgroup only in JupyterPlotly 动画条形图仅在 Jupyter 中显示 1 个子组
【发布时间】:2020-07-17 22:15:51
【问题描述】:

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

【问题讨论】:

  • 从您的数据框中发布您的示例数据
  • @bigbounty

标签: python pandas dataframe plotly-python


【解决方案1】:

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

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()

【讨论】:

  • 我不确定你所说的对齐是什么意思? Y 范围变小了?我尝试了不同的 y 范围集 30、100、200,它对我产生了相同的结果(仅限无状态)。它可能会显示 QBDS 状态,但不会保留其他状态。它一次仅在图例中显示 1 个状态,一次仅显示 1 个图表。
  • y 轴的范围适应样本数据。所以,需要根据真实数据修改范围为range_y=[0,8000]。在我的环境中,这三种状态中的每一种在判例法中也都有三个动人的传说。我的环境是 plotly:4.9.0+python:3.6.3.
猜你喜欢
  • 2018-11-14
  • 1970-01-01
  • 2022-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
相关资源
最近更新 更多