【问题标题】:Why am I getting a value error for trying to bubble plot categories?为什么尝试冒泡图类别时会出现值错误?
【发布时间】:2020-06-10 21:52:44
【问题描述】:

我正在尝试跟踪并学习如何使用 plotly,但我遇到了此代码的问题。我无法让它绘制不同的颜色,它只绘制一种没有图例的颜色。但是我在前面的行中没有收到错误,之前直到代码的图形部分?我做错了什么?

这是一个指向数据集的链接,它被命名为NewOrders.xlsx

https://drive.google.com/drive/folders/1eEL3dpCk_mfSsvEhME04-qJkWjrpi8Ib

trace0=[go.Scatter(
    x=orders['Sales'][orders['Order Priority']=='High'],
    y=orders['Profit'][orders['Order Priority']=='High'],
    name='High',
    mode='markers',
    marker=dict(size=100*orders['Discount'][orders['Order 
    Priority']=='High']))]

trace1=[go.Scatter(
    x=orders['Sales'][orders['Order Priority']=='Medium'],
    y=orders['Profit'][orders['Order Priority']=='Medium'],
    name='Medium',
    mode='markers',
    marker=dict(size=100*orders['Discount'][orders['Order ` ` 
    Priority']=='Medium']))]

trace2=[go.Scatter(
    x=orders['Sales'][orders['Order Priority']=='Low'],
    y=orders['Profit'][orders['Order Priority']=='Low'],
    name='Low',
    mode='markers',
    marker=dict(size=100*orders['Discount'][orders['Order 
    Priority']=='Low']))]

data=[trace0, trace1, trace2]

layout=go.Layout(
    title='Sales vs Profit',
    xaxis=dict(title='Sales'),
    yaxis=dict(title='Profit'),
    hovermode='closest')

figure=go.Figure(data=data, layout=layout) 

错误:ValueError Traceback(最近一次调用最后一次)

在 ----> 1 个图=go.Figure(data=data, layout=layout)

【问题讨论】:

    标签: python plotly graphing


    【解决方案1】:

    在这种情况下,您可以使用plotly.express

    plotly.express

    import pandas as pd
    import plotly.express as px
    
    df = pd.read_excel("NewOrders.xlsx")
    ddf = df[df["Order Priority"].isin(["High", "Medium", "Low"])]
    
    # you can eventually create a column
    # ddf["Discount_100"] = ddf["Discount] * 100
    
    fig = px.scatter(ddf,
                     x="Sales",
                     y="Profit",
                     color="Order Priority",
                     size="Discount")
    
    fig.update_layout(title='Sales vs Profit',
                      title_x=0.5,
                      hovermode="closest")
    fig.show()
    

    plotly.graph_objs

    import pandas as pd
    import plotly.graph_objs as go
    
    df = pd.read_excel("NewOrders.xlsx")
    
    traces = []
    colors = ["red", "green", "blue"]
    for i, priority in enumerate(["High", "Medium", "Low"]):
        ddf = df[df["Order Priority"]==priority]
        traces.append(
            go.Scatter(x=ddf["Sales"],
                       y=ddf["Profit"],
                       name=priority,
                       mode='markers',
                       marker=dict(size=100*ddf["Discount"],
                                   color=colors[i])
                       ))
    layout = dict(title='Sales vs Profit',
                  title_x=0.5,
                  hovermode="closest",
                  xaxis=dict(title='Sales'),
                  yaxis=dict(title='Profit'))
    
    fig = go.Figure(data=traces, layout=layout)
    fig.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 2020-02-25
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      相关资源
      最近更新 更多