catalpa-bungei 发表于 2023-7-26 23:44:01

如何绘制美国地图填充图

本帖最后由 catalpa-bungei 于 2023-7-26 23:47 编辑

美国各个州对应一个数据,我希望绘制各个州的填充图:
设置type_='map'根本连颜色都不会出现啊。

geo = (                                                          # 添加坐标点
      Geo(init_opts=opts.InitOpts(width = "1200px", height = "600px", bg_color = 'white'))
      .add_schema(maptype="美国",itemstyle_opts=opts.ItemStyleOpts(color='white', border_color="#111"))
      .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
      .add_coordinate('WA',-120.04,47.56)
      .add_coordinate('OR',-120.37,43.77)
      .add_coordinate('CA',-120.44,36.44)
      .add_coordinate('AK',-122.00,28.46)
      .add_coordinate('ID',-114.08,43.80)
      .add_coordinate('NV',-116.44,39.61)
      .add_coordinate('MT',-109.42,47.13)
      .add_coordinate('WY',-107.29,42.96)
      .add_coordinate('UT',-111.19,39.35)
      .add_coordinate('AZ',-111.70,34.45)
      .add_coordinate('HI',-105.25,28.72)
      .add_coordinate('CO',-105.52,38.89)
      .add_coordinate('NM',-106.11,34.45)
      .add_coordinate('ND',-100.22,47.53)
      .add_coordinate('SD',-100.52,44.72)
      .add_coordinate('NE',-99.64,41.65)
      .add_coordinate('KS',-98.53,38.43)
      .add_coordinate('OK',-97.13,35.42)
      .add_coordinate('TX',-98.16,31.03)
      .add_coordinate('MN',-94.26,46.02)
      .add_coordinate('IA',-93.60,42.09)
      .add_coordinate('MO',-92.57,38.48)
      .add_coordinate('AR',-92.43,34.69)
      .add_coordinate('LA',-92.49,31.22)
      .add_coordinate('WI',-89.55,44.25)
      .add_coordinate('MI',-84.62,43.98)
      .add_coordinate('IL',-89.11,40.20)
      .add_coordinate('IN',-86.17,40.08)
      .add_coordinate('OH',-82.71,40.31)
      .add_coordinate('KY',-84.92,37.44)
      .add_coordinate('TN',-86.32,35.78)
      .add_coordinate('MS',-89.63,32.66)
      .add_coordinate('AL',-86.68,32.53)
      .add_coordinate('FL',-81.68,28.07)
      .add_coordinate('GA',-83.22,32.59)
      .add_coordinate('SC',-80.65,33.78)
      .add_coordinate('NC',-78.88,35.48)
      .add_coordinate('VA',-78.24,37.48)
      .add_coordinate('WV',-80.63,38.62)
      .add_coordinate('PA',-77.57,40.78)
      .add_coordinate('NY',-75.22,43.06)
      .add_coordinate('MD',-76.29,39.09)
      .add_coordinate('DE',-75.55,39.09)
      .add_coordinate('NJ',-74.47,40.03)
      .add_coordinate('VT',-72.70,44.13)
      .add_coordinate('NH',-71.64,43.59)
      .add_coordinate('MA',-72.09,42.33)
      .add_coordinate('CT',-72.63,41.67)
      .add_coordinate('RI',-71.49,41.64)
      .add_coordinate('ME',-69.06,45.16)
      .add_coordinate('PR',-75.37,26.42)
      .add_coordinate('DC',-77.04,38.90)
      .add("shooting number", link,type_='map')
      .set_global_opts(
            title_opts=opts.TitleOpts(title="shooting number distribution"),
            visualmap_opts=opts.VisualMapOpts(is_show = True,type_='color',max_ = legend_bound,is_piecewise=True,pieces=pieces1,
                                          range_color=['royalblue', 'blue', 'mediumblue', 'blueviolet','darkorchid','darkviolet','indigo']
                            ),
      )
      .render('state_graph3.html')
    )

isdkz 发表于 2023-7-26 23:44:11

这段代码使用了 pyecharts 库来绘制美国地图填充图。首先,我们创建了一个 Geo 对象,并设置了一些初始选项,如图的宽度、高度和背景颜色。

然后,我们通过 add_schema 方法设置地图类型为"美国",并为每个州设置了一个样式选项,包括填充颜色和边框颜色。

接下来,我们使用 add_coordinate 方法为每个州添加坐标点。每个州的坐标点由经度和纬度确定。

然后,我们使用 add 方法将每个州的坐标点添加到地图中。

最后,我们设置了一些全局选项,如标题和视觉映射选项。视觉映射选项用于设置填充颜色的范围和颜色分段。在这个例子中,我们使用了一些预定义的颜色,用于表示不同的填充颜色。

最后,我们使用 render 方法将地图渲染为一个 HTML 文件。

请注意,这段代码中的一些变量(如 legend_bound 和 pieces1)没有给出具体的值,你需要根据实际情况进行设置。另外,你需要安装 pyecharts 库来运行这段代码。

Mike_python小 发表于 2023-7-26 23:44:18

绘制美国地图填充图可以使用Python的pyecharts库来实现。以下是一个示例代码,其中包含了添加州的坐标和设置样式的步骤:


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

# 创建地理坐标图
geo = (
    Geo(init_opts=opts.InitOpts(width="1200px", height="600px", bg_color='white'))
    .add_schema(maptype="美国", itemstyle_opts=opts.ItemStyleOpts(color='white', border_color="#111"))
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    .add_coordinate('WA', -120.04, 47.56)
    .add_coordinate('OR', -120.37, 43.77)
    .add_coordinate('CA', -120.44, 36.44)
    # 添加更多州的坐标...

    # 添加数据并设置可视化效果
    .add("shooting number", [(state, data) for state, data in your_data.items()], type_='map')
    .set_global_opts(
      title_opts=opts.TitleOpts(title="shooting number distribution"),
      visualmap_opts=opts.VisualMapOpts(is_show=True, type_='color', max_=legend_bound,
                                          is_piecewise=True, pieces=pieces1,
                                          range_color=['royalblue', 'blue', 'mediumblue', 'blueviolet',
                                                       'darkorchid', 'darkviolet', 'indigo']
                                          ),
    )
)

# 保存为 HTML 文件
geo.render('state_graph.html')


请按照实际需要修改your_data字典中的数据,将每个州对应的数据填入其中。运行代码后,将生成一个名为state_graph.html的 HTML 文件,其中包含了绘制的地图填充图。

请注意,在以上代码中,需要根据实际情况填入更多州的坐标。另外,可根据实际需求调整地图的样式、颜色映射等参数。

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

琅琊王朝 发表于 2023-7-31 22:24:49

根据你提供的代码,我注意到你在添加图表时将参数type_设为了"map",这是正确的。但是,在.add()方法中将type_参数设为"link",这是错误的。应该将type_参数设为"heatmap"或其他适合的类型,以显示填充图。

另外,确保你已经正确安装所需的Python库(如 pyecharts 和 echarts)并导入它们。在确保所有依赖项都正确安装和导入后,你的代码应该能够生成符合预期的填充图。
页: [1]
查看完整版本: 如何绘制美国地图填充图