0

我想在 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做到这一点?

4

2 回答 2

0
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']])

在此处输入图像描述

于 2020-08-30T22:36:32.257 回答
0

根据共享的数据,看起来您必须复制 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"
            }
          ]
        }]
于 2020-08-31T07:56:57.493 回答