catalpa-bungei 发表于 2023-7-26 21:16:08

修改python热力地图的颜色

本帖最后由 catalpa-bungei 于 2023-7-26 21:25 编辑

在绘制热力地图时
        geo
        .add("shooting number", link,type_='heatmap')
      .set_global_opts(
            title_opts=opts.TitleOpts(title="shooting number distribution"),
            visualmap_opts=opts.VisualMapOpts(max_ = legend_bound,is_piecewise=True,pieces=pieces1),
      )
其中热力图的颜色与图例pieces1中设置的各个区间的颜色不相同,该如何处理

我的pieces1如下:
    pieces1 = [
      {'min': 0, 'max': 50, 'label': '0-50', 'color': 'lightgray'},
      {'min': 50, 'max': 100, 'label': '50-100', 'color': 'cyan'},
      {'min': 100, 'max': 200, 'label': '100-200', 'color': 'lightsteelblue'},
      {'min': 200, 'max': 300, 'label': '200-300', 'color': 'cornflowerblue'},
      {'min': 300, 'max': 500, 'label': '300-500', 'color': 'royalblue'},
      {'min': 500, 'max': 1000, 'label': '500-1000', 'color': 'blue'},
      {'min': 1000, 'max': 1500, 'label': '1000-1500', 'color': 'midnightblue'}
    ]

补充成
visualmap_opts=opts.VisualMapOpts(max_ = legend_bound,is_piecewise=True,pieces=pieces1,
                           color=["lightgray", "cyan", "lightsteelblue", "cornflowerblue",'royalblue','blue'])
会有报错:__init__() got an unexpected keyword argument 'color'

Mike_python小 发表于 2023-7-26 21:16:23

修改热力地图的颜色

要修改热力地图的颜色,你可以通过更改 visualmap_opts 中的参数来实现。下面是一个例子,展示如何修改热力地图的颜色:


# 导入所需库
from pyecharts import options as opts
from pyecharts.charts import Geo

# 创建一个空的 Geo 图表对象
geo = Geo()

# 添加热力图数据和配置
geo.add("shooting number", link, type_='heatmap').set_global_opts(
    title_opts=opts.TitleOpts(title="shooting number distribution"),
    visualmap_opts=opts.VisualMapOpts(max_=legend_bound,is_piecewise=True,pieces=pieces1,
                                    # 设置自定义的颜色范围
                                    color=["#FF0000", "#FFFF00", "#00FF00", "#0000FF"]
                                     )
)

# 渲染并保存图表
geo.render("heatmap.html")


在这个例子中,我们将 color 参数设置为一个包含自定义颜色的列表。你可以根据需要调整列表中的颜色值。在上面的示例中,我们使用了四个颜色,但你可以根据实际需求添加或删除颜色。

记住,确保颜色列表与 pieces1 中的区间数量匹配。如果颜色列表长度与区间数量不一致,可能会导致显示异常。

希望这个示例能帮助你修改热力地图的颜色。如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

陶远航 发表于 2023-7-26 21:16:45

要修改 Python 热力地图的颜色,你可以通过修改 visualmap_opts 参数来实现。在 pieces1 中设置每个区间的颜色,然后将其传递给 visualmap_opts。

下面是一个示例:

from pyecharts import options as opts
from pyecharts.charts import Geo

geo = Geo()

# 绘制热力地图,并设置颜色和图例
geo.add(
    "shooting number",
    link,
    type_="heatmap",
).set_global_opts(
    title_opts=opts.TitleOpts(title="shooting number distribution"),
    visualmap_opts=opts.VisualMapOpts(
      max_=legend_bound,
      is_piecewise=True,
      pieces=pieces1,
    ),
)



在上述代码中,你需要根据自己的需求修改 pieces1 的值,来设置每个区间的颜色。pieces1 是一个列表,其中包含了多个 Piece 对象,而每个 Piece 对象用于设置一个区间的属性,包括颜色。

例如,你可以按照如下方式定义 pieces1:

pieces1 = [
    {"min": 0, "max": 10, "color": "#FF0000"},
    {"min": 10, "max": 20, "color": "#00FF00"},
    {"min": 20, "max": 30, "color": "#0000FF"},
    # 更多区间...
]


在上述示例中,每个区间都有不同的颜色。你可以根据自己的需求设置每个区间的取值范围和对应的颜色。

请注意,颜色可以是十六进制格式(如 #FF0000)或 RGB 格式(如 rgb(255, 0, 0))。

希望这个解答对你有帮助!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

isdkz 发表于 2023-7-26 21:17:48

你在创建热力地图时遇到的问题可能是由于颜色映射或颜色设置的问题。在你的代码中, pieces1 可能没有正确设置颜色。下面是如何使用 pieces 设置颜色的一个示例:

pieces1 = [
    {"min": 0, "max": 200, "label": "0-200", "color": "#50A3BA"},
    {"min": 201, "max": 400, "label": "201-400", "color": "#eac763"},
    {"min": 401, "max": 600, "label": "401-600", "color": "#d94e5d"}
]


在这个例子中,每一个字典包含一个颜色区间,对应一个颜色。你需要确保你的 pieces1 有类似的设置。

然后,你需要确保你在 VisualMapOpts 中正确地使用了 pieces ,如下:

.set_global_opts(
    title_opts=opts.TitleOpts(title="shooting number distribution"),
    visualmap_opts=opts.VisualMapOpts(max_=legend_bound, is_piecewise=True, pieces=pieces1)
)


这样,热力图的颜色应该会根据你在 pieces1 中设置的颜色来显示。如果你的颜色设置没有问题,但是热力图的颜色仍然不对,那么可能是其他的设置问题,你可能需要检查你的其他设置,或者提供更多的代码以便我们能提供更具体的帮助。

hellomyprogram 发表于 2023-7-26 21:37:03

本帖最后由 hellomyprogram 于 2023-7-26 21:43 编辑

大概可以用range-color代替color
页: [1]
查看完整版本: 修改python热力地图的颜色