【问题标题】:Plotly express not rendering a sunburst chartPlotly 表示不渲染旭日形图
【发布时间】:2021-09-09 20:44:49
【问题描述】:

我正在尝试使用 pandas 数据框和 plotly express 创建一个旭日形图。

这是数据框,请记住,这只是前 10 行,一旦完成 2001 年的郊区,它就会跳转到 2006、2011、2016 年的相同郊区

这是我的代码

sunburst_chart = px.sunburst(
    sunburst_data,
    path=["year", "neighbourhood"],
    values="average_house_value",
    names="neighbourhood",  
)

sunburst_chart.show()

给我的错误是 AttributeError: type object 'object' has no attribute 'dtype' 并且指的是 names="neighbourhood" 但如果我删除该行,错误将指向上面的行,然后重复。

没有重复的行,没有空值,dtypes是

year                    int64
neighbourhood          object
average_house_value     int64
dtype: object

非常感谢任何帮助,谢谢

【问题讨论】:

  • 请不要发布图片。人们无法从图像中复制数据并重现您的问题 -
  • @Psidom 你想让我用什么代替它?我的 df 是 700 行
  • 粘贴一个小的数据框作为文本,可以重现您的问题。您不需要在帖子中放置 700 行
  • 你用的是什么版本的 numpy 和 pandas?
  • @TomWeekes 我发现最好分享数据样本like this

标签: python pandas numpy plotly


【解决方案1】:

基于this issuethis bug report,我认为这是一个与numpy 和pandas 相关的错误,如果您升级到这两个库的最新版本,应该可以解决。

我创建了一个与您的列和数据类型相同的示例 DataFrame,在我降级到 pandas 0.25.3 / numpy 1.20.0 后,我能够重现您的错误:

AttributeError: type object 'object' has no attribute 'dtype'.

当我将两个库都升级到 numpy 1.21.0 / pandas 1.1.0 时,我能够生成旭日图:

import pandas as pd
import plotly.express as px

sunburst_data = pd.DataFrame({
    'year':[2001]*4 + [2002]*4 + [2003]*4,
    'neighbourhood': list('abcdefghijkl'),
    'average_house_value': list(range(100000,220000,10000))
})

sunburst_chart = px.sunburst(
    sunburst_data,
    path=["year", "neighbourhood"],
    values="average_house_value",
    names="neighbourhood",  
)

sunburst_chart.show()

【讨论】:

  • @TomWeekes 如果此建议解决了您的问题,请考虑将其标记为已接受的答案和/或投赞成票!
猜你喜欢
  • 2020-11-14
  • 1970-01-01
  • 2020-07-22
  • 2016-06-30
  • 2020-03-23
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
相关资源
最近更新 更多