【问题标题】:How to create FusionCharts heatmap from a list of dictionaries?如何从字典列表中创建 FusionCharts 热图?
【发布时间】:2020-12-19 02:19:47
【问题描述】:

我想在 python 中使用 FusionCharts 热图显示以下数据:

[{'day_of_like': 'Monday', 'hours_of_like': 18, 'avg_of_likes': 8}, {'day_of_like': 'Monday', 'hours_of_like': 23, 'avg_of_likes': 5}]

但我在 FusionCharts 网站上找不到这方面的指南。如何使用 python 做到这一点?

【问题讨论】:

  • 仅供参考:彻底回答问题非常耗时。如果您的问题已解决,请通过接受最适合您的需求的解决方案表示感谢。 接受检查位于答案左上角的向上/向下箭头下方。如果出现更好的解决方案,则可以接受新的解决方案。如果您的声誉超过 15,您还可以使用向上或向下箭头对答案的质量/有用性进行投票。 如果解决方案无法回答问题,请发表评论。 What should I do when someone answers my question?。谢谢。

标签: python data-visualization heatmap fusioncharts json-normalize


【解决方案1】:

根据共享的数据,看起来您必须复制 day_of_like 属性,您需要设置唯一值或为每个重复键设置唯一值这里是 FusionCharts 中相同的 JavaScript 表示 - http://jsfiddle.net/j3r0avhz/3/

  "dataset": [{
          "data": [{
              "rowid": "hl",
              "columnid": "1",
              "value": "18",
              "colorRangeLabel": "Bad"
            },
            {
              "rowid": "al",
              "columnid": "1",
              "value": "8",
              "colorRangeLabel": "Bad"
            },
          {
              "rowid": "hl",
              "columnid": "2",
              "value": "23",
              "colorRangeLabel": "Good"
            },
            {
              "rowid": "al",
              "columnid": "2",
              "value": "5",
              "colorRangeLabel": "Bad"
            }
          ]
        }]

【讨论】:

    【解决方案2】:
    import pandas as pd
    import seaborn as sns
    
    # list of dictionaries
    data = [{'day_of_like': 'Monday', 'hours_of_like': 18, 'avg_of_likes': 8}, {'day_of_like': 'Monday', 'hours_of_like': 23, 'avg_of_likes': 5}]
    
    # convert to dataframe
    df = pd.json_normalize(data)
    
    # save the data to a csv if needed
    df.to_csv('test.csv', index=False)
    
    # display(df)
      day_of_like  hours_of_like  avg_of_likes
    0      Monday             18             8
    1      Monday             23             5
    
    # to json
    df.to_json()
    
    [out]:
    '{"day_of_like":{"0":"Monday","1":"Monday"},"hours_of_like":{"0":18,"1":23},"avg_of_likes":{"0":8,"1":5}}'
    
    # to dict
    df.to_dict()
    
    [out]:
    {'day_of_like': {0: 'Monday', 1: 'Monday'}, 'hours_of_like': {0: 18, 1: 23}, 'avg_of_likes': {0: 8, 1: 5}}
    
    # plot
    sns.heatmap(df[['hours_of_like', 'avg_of_likes']])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2018-11-06
      • 2020-03-07
      相关资源
      最近更新 更多