人間重逢 2024-04-12 15:05 采纳率: 83.3%
浏览 21

为什么在pycharm里的全国热力图没有数值

为什么在pycharm里的全国热力图没有数值

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
import matplotlib.pyplot as plt
from pyecharts.charts import PictorialBar
from pyecharts.globals import SymbolType

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False #解决中文显示问题

df = pd.read_csv('data.csv')
address_count = df.groupby('工作地点').count()['公司名称'].sort_values()
x = address_count.index.tolist()
y = address_count.values.tolist()
data = list(zip(x,y))
print(data)
f = (
    Map()
        .add('', data, 'china-cities')
        # 在系列中将我们的标签隐藏掉
        .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
        .set_global_opts(
        title_opts=opts.TitleOpts(
            title="全国各市",
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=1,
            max_=50
        )
    )
        .render('cities.html')
    )

生成的图

img

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2024-04-12 15:11
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    在你的代码中,Map() 类型的图表(热力图)是通过 add() 方法添加数据,但是你并没有直接提供数值信息来表示颜色等级。VisualMapOpts 是用来设置颜色映射范围的,但你需要提供一个value字段,对应于地图上每个点的值,这样才能根据这个值来给各个区域上色。

    为了创建一个有数值的全国热力图,你需要在 data 列表中包含每个城市的 '公司名称' 的数量和对应的数值。例如,如果你的数据集中有一个 '公司名称' 列,你可以使用如下代码:

    # 假设df['公司名称数量'] 是对应的工作地点的公司数量列
    df['公司名称数量'] = df['公司名称'].groupby(df['工作地点']).transform('count')
    
    # 现在我们有了数值,可以更新data列表
    data = df.groupby('工作地点')['公司名称数量'].apply(list).to_dict()
    
    # 将字典转换为列表,格式为 [(城市名, [数值]), ...]
    data_list = [(city, values) for city, values in data.items()]
    
    # 更新数据
    f = (
        Map()
            .add('', data_list, 'china-cities')
            # ...
            .set_series_opts(
                label_opts=opts.LabelOpts(is_show=False),
                data_pair=[
                    dict(name=name, value=value)  # 添加value字段
                    for name, value in data_list
                ]
            )
            # ...
            .render('cities.html')
    )
    

    这样,data_pair 会包含每个城市及其对应的数值,Pyecharts会根据这些数值自动创建热力图。请确保你的数据集结构允许这样做,如果 '公司名称数量' 列不存在,你需要根据实际情况调整。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月12日

悬赏问题

  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示