【发布时间】:2022-01-23 23:05:30
【问题描述】:
我讨厌继续发布有关 dash\plotly 的帖子,但我不明白这里出了什么问题。我已经从 plotly 站点复制并粘贴了代码,以便显示带有下拉菜单的饼图。当我创建仪表板时,有一个显示所有类别的下拉菜单,但看不到饼图。请帮助我了解出了什么问题。代码如下:
import pandas as pd
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.express as px
# This dataframe has 244 lines, but 4 distinct values for `day`
url="https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBM-DS0321EN-SkillsNetwork/datasets/spacex_launch_dash.csv"
spacex_df=pd.read_csv(url)
spacex_df.rename(columns={'Launch Site':'Site'}, inplace=True)
app = dash.Dash(__name__)
app.layout = html.Div([
html.P("site-dropdown:"),
dcc.Dropdown(
id='Site',
value='Site',
options=[{'value': x, 'label': x}
for x in ['CCAFS LC-40', 'CCAFS SLC-40', 'KSC LC-39A', 'VAFB SLC-4E']],
clearable=False
),
dcc.Graph(id="pie-chart"),
])
@app.callback(
Output("pie-chart", "figure"),
[Input("Launch Site", "value")])
def generate_chart(Site, values):
fig = px.pie(spacex_df, values='Site', names='Site')
return fig
app.run_server()
【问题讨论】:
-
我查看了您的 DataFrame,但对您想要在饼图中显示的内容感到有些困惑。
'Site'列都是字符串,因此将参数values='Site'传递给px.pie是没有意义的。如果我没记错的话,唯一包含值的列是Payload Mass (kg)。此外,当您从下拉菜单中选择特定的Site并按该站点对您的 DataFrame 进行子集化时,那么您的饼图的不同部分应该是什么? -
它旨在显示每个发射场的全部成功和失败。所以列'class'应该有一个成功的0和失败的1。但是,我还没有做那一点,因为主要集中在为什么根本没有显示饼图。您认为这与不同行业的情况有关吗?
-
您的代码存在一些问题:您的
generate_chart函数应该有一个输入而不是两个,并且您调用px.pie时使用的列参数与列类型不一致
标签: python plot plotly plotly-dash dashboard