> 文章列表 > 工具篇3.5世界热力图

工具篇3.5世界热力图

工具篇3.5世界热力图

一、定义

世界热力图是一种地图形式,它使用颜色的变化来显示世界各个地区的某种指标(如 GDP、人口、气候等)的分布和密度。通常,世界热力图会使用不同的颜色来表示数据的变化,例如使用蓝色表示低值,红色表示高值,这种颜色渐变的方式可以帮助人们更好地理解数据的分布情况。世界热力图可以用于研究不同国家或地区之间的差异,以及不同指标之间的相关性等问题,同时也可以用于预测未来的趋势和发展方向。因此,世界热力图是一种非常有用的可视化工具,它可以帮助我们更好地理解复杂的数据,从而做出更准确的决策和预测。

 二、所用库

Plotly 是一个开源的 Python 数据可视化库,它可以用于创建各种类型的交互式图表和可视化。Plotly 支持多种图表类型,包括折线图、散点图、条形图、热力图等,同时也支持 3D 图形和动画等高级可视化功能。此外,Plotly 还支持多种输出格式,包括 HTML、SVG、PNG、PDF 等,可以轻松地将生成的图表嵌入到 Web 页面或报告中。

2.1安装

在使用 Plotly 之前,需要先安装 Plotly 库。可以使用 pip 命令来安装 Plotly:

pip install plotly

如果需要使用 Plotly 的高级功能,还需要安装其他依赖库,例如 pandas、numpy、scipy、scikit-learn 等。这些库可以使用 pip 命令来安装。

2.2步骤

1.导入所需的库

import pandas as pd
import plotly.graph_objs as go

在使用 Plotly 创建图表时,通常需要使用 pandas 库来读取和处理数据,同时还需要导入 plotly.graph_objs 模块来创建图表对象。

2.读取和处理数据

df = pd.read_csv('data.csv')

使用 pandas 库可以轻松地读取和处理各种格式的数据,例如 CSV、Excel、JSON、SQL 数据库等。
3.创建图表对象

data = go.Scatter(x=df['x'], y=df['y'], mode='markers')

使用 plotly.graph_objs 模块中的类(如 Scatter、Bar、Heatmap 等)来创建图表对象,并指定所需的参数(如 x、y、mode、marker、text 等)。

在 Plotly 中,用于创建图表的各种类(Scatter、Bar、Heatmap等)都具有许多参数,下面是这些参数的解释:

Scatter 类参数:
        x:指定散点图中横轴的数据。
        y:指定散点图中纵轴的数据。
        mode:指定散点图中点的类型,如点、线、标记等。
        marker:指定散点图中点的属性,如大小、颜色等。
        text:指定散点图中每个点的文本标签。
Heatmap 类参数:
        x:指定热力图中横轴的数据。
        y:指定热力图中纵轴的数据。
        z:指定热力图中每个格子的值。
        colorscale:指定热力图的颜色刻度
        zmin、zmax:指定热力图中最小和最大的值。
        colorbar:指定热力图的颜色刻度栏的属性。
除了上述参数,这些类还有许多其他参数,如图表的标题、布局、大小等,可以根据需要进行设置。

4.创建布局对象

layout = go.Layout(title='Scatter Plot')

使用 go.Layout 类创建布局对象,并指定所需的参数,如图表标题、坐标轴标签、背景颜色等

5.创建 Figure 对象

fig = go.Figure(data=data, layout=layout)

将创建的数据和布局对象传递给 go.Figure 类,创建 Figure 对象。

6.显示图表

fig.show()

使用 show() 方法显示出创建的图表。也可以将图表导出为各种格式,如图片、HTML、PDF 等。
除了以上基本用法之外,Plotly 还支持丰富的交互式功能,如缩放、平移、旋转、选取、高亮等,使用户可以更加灵活地探索和分析数据

三、实战

import pandas as pd
import plotly.graph_objs as go# 读取 XLSX文件中的数据
df=pd.read_excel("D:\\桌面\\map.xlsx")# 创建热力图数据
data = go.Choropleth(locations=df['Code'],  # 国家代码z=df['GGDP'],  # GDP 数据text=df['Country'],  # 国家名称colorscale='Blues',  # 颜色刻度autocolorscale=False,  # 关闭自动颜色刻度reversescale=True,  # 翻转颜色刻度marker_line_color='darkgray',  # 边框颜色marker_line_width=0.5,  # 边框宽度colorbar_title='GGDP (USD)',  # 颜色刻度标题
)# 创建布局
layout = go.Layout(title=dict(text='World GGDP Heatmap', x=0.5),  # 标题geo=dict(showframe=False, showcoastlines=False, projection_type='equirectangular'),  # 地理坐标系配置margin=dict(l=0, r=0, t=40, b=0),  # 图表边距
)
#title:指定标题文本和位置,这里标题为 "World GGDP Heatmap",位置居中。
#geo:指定地理坐标系的配置,包括是否显示边框、海岸线和投影类型。这里投影类型为等距圆柱投影。
#margin:指定图表边距,包括左、右、上、下四个方向的边距值。# 绘制地图
fig = go.Figure(data=data, layout=layout)
fig.show()
#地图导出
fig.write_image("gdp_heatmap.png")

这里使用了 Plotly 的 Choropleth 类来创建热力图数据,具体参数的含义如下:
        locations:指定地图上每个区域的位置,这里指定为国家代码。
        z:指定每个区域的数值大小,这里指定为 GDP 数据。
        text:指定每个区域的标签文本,这里指定为国家名称。
        colorscale:指定颜色刻度,这里选择了蓝色系列。
        autocolorscale:是否启用自动颜色刻度,默认为 True。
        reversescale:是否翻转颜色刻度,默认为 False。
        marker_line_color:指定区域边框的颜色。
        marker_line_width:指定区域边框的宽度。
        colorbar_title:指定颜色刻度的标题。

代码所使用文件