【问题标题】:Range_color attribute seemingly not working in my code that uses plotly express?Range_color 属性似乎在我使用 plotly express 的代码中不起作用?
【发布时间】:2022-01-03 14:59:15
【问题描述】:

我想使用 range_color 属性将其从 0 修复到 200。

range_color 属性由于某种原因不这样做,并且所有值都在给定范围内。然后,我还使用 kaleido 后端将结果图形导出为 png,这可能会覆盖它吗? 这是执行此操作的代码部分。 data 数组中的每个点不超过 200,并且没有一个是负数。为什么 range_color 属性不覆盖比例?

创建绘图并将其导出为 png 的代码部分:

fig = px.choropleth(locationmode='USA-states', locations=location, color=data, scope="usa", range_color=(0,200)) fig.write_image("figure.png", engine="kaleido")

数组示例:

[4, 2, 0, 8, 2, 1, 0, 0, 1, 1, 42, 17, 0, 0, 6, 0, 0, 1, 0, 0, 1, 2, 104, 0, 5, 0, 1, 0, 0, 1, 0, 0, 0, 0, 54, 21, 0, 36, 8, 4, 8, 0, 10, 0, 0, 7, 47, 0, 0, 0, 29, 21, 1, 0, 0]

结果: A choropleth map of the USA where the scale does not match the range_color values I put in.

我也在几个不同的数据集上进行了尝试,并且从未将比例设置为 0 到 200。

编辑: 我只是尝试在不同的文件中重新创建代码并且它起作用了,除了不包括一些从 CSV 获取数据的代码之外,我没有做任何不同的事情,而是手动创建相同的数据集。我现在很困惑。

【问题讨论】:

    标签: python plotly-python plotly-express


    【解决方案1】:
    • 创建了一个 MWE 来定义您编写 sn-p 代码所依赖的两个数组
    • 显然range_color 正在按预期工作。这表明您设置这两个数组的代码包含您不期望的值
    import pandas as pd
    import numpy as np
    import plotly.express as px
    
    # source and structure US states...
    df = pd.read_html("https://www.bls.gov/respondents/mwr/electronic-data-interchange/appendix-d-usps-state-abbreviations-and-fips-codes.htm")[0]
    df.columns = df.iloc[0]
    df = pd.concat([df.iloc[1:-1, 0:3], df.iloc[1:-1,3:6]]).reset_index(drop=True).iloc[0:-1]
    
    # set up arrays used by sample code
    location = df["Postal Abbr."].values
    data = np.random.randint(1,300, len(location))
    
    fig = px.choropleth(locationmode='USA-states', locations=location, color=data, scope="usa", range_color=(0,200)) 
    # fig.write_image("figure.png", engine="kaleido")
    fig
    
    

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 2010-09-24
      • 2011-06-08
      • 2010-10-08
      • 1970-01-01
      • 2010-11-16
      • 2023-03-04
      • 2015-09-30
      • 2010-12-08
      相关资源
      最近更新 更多