当前位置: 首页 > news >正文

公司的网站是怎么建立网络营销是做什么的工作

公司的网站是怎么建立,网络营销是做什么的工作,门窗设计软件免费版,珠海网站制作网络公司目录 一、散点图 1.特点 (1)优点 (2)缺点 2.应用场景 3.python实现 (1)代码 (2)实现结果 二、气泡图 1.特点 (1)优点 (2)缺点 2.应用场景 3.python实现 (1)代码 (2)实现结果 三、相关图 1.特点 (1)优点 (2)缺点 2.应用场景 3.python实现 (1)代码 (2)…

目录

一、散点图

1.特点

(1)优点

(2)缺点

2.应用场景

 3.python实现

(1)代码

(2)实现结果 

二、气泡图

1.特点

(1)优点

(2)缺点

2.应用场景

3.python实现

(1)代码

(2)实现结果 

三、相关图

1.特点

(1)优点

(2)缺点

2.应用场景

3.python实现

(1)代码 

(2)实现结果

4.变体

(1)符号图

(2)网络图

四、热力图

1.特点

(1)优点

(2)缺点

2.应用场景

3.python实现

(1)代码 

(2)实现结果 

五、二维密度图

1.特点

(1)优点

(2)缺点

2.应用场景

3.python实现

(1)代码 

(2)实现结果 

六、三维密度图

1.特点

(1)优点

(2)缺点

2.应用场景

 3.python实现

(1)代码

(2)实现结果 

4.变体——三维密度体积图 

(1)python实现代码

  (2)实现结果​编辑

七、雷达图

1.雷达图的特点

(1)优点

(2)缺点

2.应用场景

3.python实现

(1)代码 

(2)实现结果

一、散点图

        散点图是一种二维数据可视化图表,通过在坐标系中绘制数据点来展示两个连续变量之间的关系。它广泛应用于数据分析、统计建模和机器学习等领域,能够直观地揭示数据的分布、趋势、聚类和异常值。 

1.特点

(1)优点

        直观展示分布与关系:通过点的位置和密度,清晰呈现两个连续变量之间的关系(如线性、非线性、聚类或异常值)。

        多维度信息整合:可通过调整点的大小(气泡图)、颜色或形状,同时展示第三或第四个变量。

        异常值检测:离散点易于识别,适合发现数据中的离群值。

        无数据量限制:适合大规模数据集(尤其是动态散点图或交互式缩放)。

(2)缺点

        过载问题:数据点过多时易重叠(Overplotting),导致信息模糊,需借助透明度、抖动(Jitter)或采样解决。

        仅适用于数值数据:分类变量需编码为数值才能使用。

        解读依赖经验:对新手可能难以判断相关性强度或模式(需配合趋势线或统计指标)。

2.应用场景

        相关性分析:研究两个变量的关联(如身高与体重、广告投入与销售额)。示例:添加趋势线(如线性回归线)量化关系强度。

        聚类与分组识别:发现数据中的自然聚类(如客户分群、物种分类)。示例:结合颜色区分不同类别(如鸢尾花数据集的花瓣长度与宽度)。

        异常值检测:识别偏离主体分布的异常点(如金融欺诈检测、实验误差)。

        时间序列模式:横轴为时间,纵轴为变量值,观察随时间变化的规律(需时间间隔均匀)。

        科学实验与工程:对比实验参数与结果(如温度与反应速率、压力与材料强度)。

        地理空间数据:用经纬度作为坐标展示地理分布(需结合地图背景更清晰)。

 3.python实现

(1)代码
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_iris
import pandas as pd# 加载数据
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = iris.target_names[iris.target]# 基本散点图
plt.figure(figsize=(8, 6))
sns.scatterplot(x='sepal length (cm)', y='sepal width (cm)', data=df, hue='species', style='species')
plt.title('Sepal Length vs Sepal Width')
plt.xlabel('Sepal Length (cm)')
plt.ylabel('Sepal Width (cm)')
plt.grid(True)
plt.show()plt.figure(figsize=(8, 6))
sns.scatterplot(x='petal length (cm)',y='petal width (cm)',hue='species',size='sepal length (cm)',  # 使用花萼长度控制点大小data=df,palette='deep',sizes=(20, 200)
)
plt.title('Petal Dimensions with Sepal Length Size Encoding')
plt.xlabel('Petal Length (cm)')
plt.ylabel('Petal Width (cm)')
plt.show()
(2)实现结果 

 

二、气泡图

        气泡图是散点图的进阶版本,通过在二维坐标系中增加气泡大小这一视觉维度,可以同时展示三个变量的关系(X轴、Y轴、气泡大小)。部分高级气泡图还可以通过颜色引入第四个变量。

1.特点

(1)优点

        多变量展示:可同时呈现3-4个维度的数据(X轴、Y轴、气泡大小、颜色)。 比普通散点图信息量更大。

        直观对比:气泡大小差异能直观反映数值大小(如GDP、人口、销量等)。

        适用于分类比较:用不同颜色区分类别(如不同国家、产品类型)。

        适合中等规模数据:数据量适中时(几十到几百个点),可视化效果较好。

(2)缺点

        气泡重叠问题:气泡过多或大小差异过大时,容易遮挡,影响可读性。

        大小对比不精确:人眼对面积(气泡大小)的敏感度低于长度(柱状图),可能导致误判。

        不适合大数据集:数据点超过100个时,可能显得杂乱,需优化(如透明度调整、交互式缩放)。

        依赖合理缩放:气泡大小的比例尺需合理设置,否则可能夸大或弱化差异。

2.应用场景

        经济与商业分析:市场份额对比(X=增长率,Y=市场份额,气泡大小=营收)。产品分析(X=价格,Y=销量,气泡大小=利润)。  

        社会科学与人口统计:国家/地区对比(X=人均GDP,Y=预期寿命,气泡大小=人口)。教育研究(X=教育投入,Y=升学率,气泡大小=学校数量)。  

        科学与工程:实验数据可视化(X=温度,Y=反应速率,气泡大小=催化剂用量)。  医疗统计(X=药物剂量,Y=疗效,气泡大小=病例数)。  

        地理数据可视化:城市发展指标(X=人口密度,Y=空气质量,气泡大小=GDP)。  疫情数据(X=感染率,Y=死亡率,气泡大小=病例数)。  

         网络与关系分析:社交网络分析(X=连接数,Y=活跃度,气泡大小=影响力)。  企业关系图(X=合作频率,Y=收益,气泡大小=公司规模)。  

3.python实现

(1)代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False  # 解决负号显示问题# 数据定义
dataBJ = [[1, 55, 9, 56, 0.46, 18, 6, '良'],[2, 25, 11, 21, 0.65, 34, 9, '优'],[3, 56, 7, 63, 0.3, 14, 5, '良'],[4, 33, 7, 29, 0.33, 16, 6, '优'],[5, 42, 24, 44, 0.76, 40, 16, '优'],[6, 82, 58, 90, 1.77, 68, 33, '良'],[7, 74, 49, 77, 1.46, 48, 27, '良'],[8, 78, 55, 80, 1.29, 59, 29, '良'],[9, 267, 216, 280, 4.8, 108, 64, '重度污染'],[10, 185, 127, 216, 2.52, 61, 27, '中度污染'],[11, 39, 19, 38, 0.57, 31, 15, '优'],[12, 41, 11, 40, 0.43, 21, 7, '优'],[13, 64, 38, 74, 1.04, 46, 22, '良'],[14, 108, 79, 120, 1.7, 75, 41, '轻度污染'],[15, 108, 63, 116, 1.48, 44, 26, '轻度污染'],[16, 33, 6, 29, 0.34, 13, 5, '优'],[17, 94, 66, 110, 1.54, 62, 31, '良'],[18, 186, 142, 192, 3.88, 93, 79, '中度污染'],[19, 57, 31, 54, 0.96, 32, 14, '良'],[20, 22, 8, 17, 0.48, 23, 10, '优'],[21, 39, 15, 36, 0.61, 29, 13, '优'],[22, 94, 69, 114, 2.08, 73, 39, '良'],[23, 99, 73, 110, 2.43, 76, 48, '良'],[24, 31, 12, 30, 0.5, 32, 16, '优'],[25, 42, 27, 43, 1, 53, 22, '优'],[26, 154, 117, 157, 3.05, 92, 58, '中度污染'],[27, 234, 185, 230, 4.09, 123, 69, '重度污染'],[28, 160, 120, 186, 2.77, 91, 50, '中度污染'],[29, 134, 96, 165, 2.76, 83, 41, '轻度污染'],[30, 52, 24, 60, 1.03, 50, 21, '良'],[31, 46, 5, 49, 0.28, 10, 6, '优']
]dataGZ = [[1, 26, 37, 27, 1.163, 27, 13, '优'],[2, 85, 62, 71, 1.195, 60, 8, '良'],[3, 78, 38, 74, 1.363, 37, 7, '良'],[4, 21, 21, 36, 0.634, 40, 9, '优'],[5, 41, 42, 46, 0.915, 81, 13, '优'],[6, 56, 52, 69, 1.067, 92, 16, '良'],[7, 64, 30, 28, 0.924, 51, 2, '良'],[8, 55, 48, 74, 1.236, 75, 26, '良'],[9, 76, 85, 113, 1.237, 114, 27, '良'],[10, 91, 81, 104, 1.041, 56, 40, '良'],[11, 84, 39, 60, 0.964, 25, 11, '良'],[12, 64, 51, 101, 0.862, 58, 23, '良'],[13, 70, 69, 120, 1.198, 65, 36, '良'],[14, 77, 105, 178, 2.549, 64, 16, '良'],[15, 109, 68, 87, 0.996, 74, 29, '轻度污染'],[16, 73, 68, 97, 0.905, 51, 34, '良'],[17, 54, 27, 47, 0.592, 53, 12, '良'],[18, 51, 61, 97, 0.811, 65, 19, '良'],[19, 91, 71, 121, 1.374, 43, 18, '良'],[20, 73, 102, 182, 2.787, 44, 19, '良'],[21, 73, 50, 76, 0.717, 31, 20, '良'],[22, 84, 94, 140, 2.238, 68, 18, '良'],[23, 93, 77, 104, 1.165, 53, 7, '良'],[24, 99, 130, 227, 3.97, 55, 15, '良'],[25, 146, 84, 139, 1.094, 40, 17, '轻度污染'],[26, 113, 108, 137, 1.481, 48, 15, '轻度污染'],[27, 81, 48, 62, 1.619, 26, 3, '良'],[28, 56, 48, 68, 1.336, 37, 9, '良'],[29, 82, 92, 174, 3.29, 0, 13, '良'],[30, 106, 116, 188, 3.628, 101, 16, '轻度污染'],[31, 118, 50, 0, 1.383, 76, 11, '轻度污染']
]dataSH = [[1, 91, 45, 125, 0.82, 34, 23, '良'],[2, 65, 27, 78, 0.86, 45, 29, '良'],[3, 83, 60, 84, 1.09, 73, 27, '良'],[4, 109, 81, 121, 1.28, 68, 51, '轻度污染'],[5, 106, 77, 114, 1.07, 55, 51, '轻度污染'],[6, 109, 81, 121, 1.28, 68, 51, '轻度污染'],[7, 106, 77, 114, 1.07, 55, 51, '轻度污染'],[8, 89, 65, 78, 0.86, 51, 26, '良'],[9, 53, 33, 47, 0.64, 50, 17, '良'],[10, 80, 55, 80, 1.01, 75, 24, '良'],[11, 117, 81, 124, 1.03, 45, 24, '轻度污染'],[12, 99, 71, 142, 1.1, 62, 42, '良'],[13, 95, 69, 130, 1.28, 74, 50, '良'],[14, 116, 87, 131, 1.47, 84, 40, '轻度污染'],[15, 108, 80, 121, 1.3, 85, 37, '轻度污染'],[16, 134, 83, 167, 1.16, 57, 43, '轻度污染'],[17, 79, 43, 107, 1.05, 59, 37, '良'],[18, 71, 46, 89, 0.86, 64, 25, '良'],[19, 97, 71, 113, 1.17, 88, 31, '良'],[20, 84, 57, 91, 0.85, 55, 31, '良'],[21, 87, 63, 101, 0.9, 56, 41, '良'],[22, 104, 77, 119, 1.09, 73, 48, '轻度污染'],[23, 87, 62, 100, 1, 72, 28, '良'],[24, 168, 128, 172, 1.49, 97, 56, '中度污染'],[25, 65, 45, 51, 0.74, 39, 17, '良'],[26, 39, 24, 38, 0.61, 47, 17, '优'],[27, 39, 24, 39, 0.59, 50, 19, '优'],[28, 93, 68, 96, 1.05, 79, 29, '良'],[29, 188, 143, 197, 1.66, 99, 51, '中度污染'],[30, 174, 131, 174, 1.55, 108, 50, '中度污染'],[31, 187, 143, 201, 1.39, 89, 53, '中度污染']
]# 创建数据框
df_bj = pd.DataFrame(dataBJ, columns=['date', 'AQIindex', 'PM25', 'PM10', 'CO', 'NO2', 'SO2', 'level'])
df_gz = pd.DataFrame(dataGZ, columns=['date', 'AQIindex', 'PM25', 'PM10', 'CO', 'NO2', 'SO2', 'level'])
df_sh = pd.DataFrame(dataSH, columns=['date', 'AQIindex', 'PM25', 'PM10', 'CO', 'NO2', 'SO2', 'level'])# 创建画布
plt.figure(figsize=(14, 8))# 自定义颜色映射
colors = ['#dd4444', '#fec42c', '#80F1BE']
cmap = LinearSegmentedColormap.from_list('custom_cmap', colors, N=3)# 绘制散点图
scatter_bj = plt.scatter(df_bj['date'], df_bj['AQIindex'],s=df_bj['PM25']*2,  # 点大小映射到PM2.5c=df_bj['SO2'],     # 点颜色映射到SO2cmap=cmap, alpha=0.8,edgecolors='black', linewidths=0.5,label='北京')scatter_gz = plt.scatter(df_gz['date'], df_gz['AQIindex'],s=df_gz['PM25']*2,c=df_gz['SO2'],cmap=cmap, alpha=0.8,edgecolors='black', linewidths=0.5,label='广州')scatter_sh = plt.scatter(df_sh['date'], df_sh['AQIindex'],s=df_sh['PM25']*2,c=df_sh['SO2'],cmap=cmap, alpha=0.8,edgecolors='black', linewidths=0.5,label='上海')# 添加标题和标签
plt.title('空气质量指数对比分析', fontsize=18)
plt.xlabel('日期', fontsize=16)
plt.ylabel('AQI指数', fontsize=16)# 设置坐标轴范围
plt.xlim(0, 32)
plt.ylim(0, 300)# 添加网格线
plt.grid(True, linestyle='--', alpha=0.7)# 添加图例
legend1 = plt.legend(title="城市", loc='upper right')
plt.gca().add_artist(legend1)# 添加大小图例
sizes = [10, 50, 100, 150, 200]
labels = [f'PM2.5: {s/2}' for s in sizes]
markers = []
for size in sizes:markers.append(plt.scatter([], [], s=size, color='gray', alpha=0.8))
legend2 = plt.legend(markers, labels, title="圆形大小:PM2.5",loc='lower right', frameon=True)
plt.gca().add_artist(legend2)# 添加颜色条
cbar = plt.colorbar(scatter_bj, ax=plt.gca())
cbar.set_label('明暗:二氧化硫 (SO2)', fontsize=14)# 自定义每个城市的tooltip
# 注意:matplotlib中交互式tooltip需要额外的交互库支持
# 这里仅提供静态显示方式# 显示图形
plt.tight_layout()
plt.show()
(2)实现结果 

三、相关图

        相关图是一种用于可视化多个变量之间两两相关关系的图表形式。它通常以矩阵的形式展现,行列对应变量名称,颜色或数值代表变量之间的相关系数(如皮尔逊相关系数)。它可以采用热力图、气泡图、符号图或网络图等多种形式,其中最常见的是热力图式相关图

1.特点

        相关图的最大优势在于它能够帮助我们快速识别出多个变量之间的线性关联程度。例如,在机器学习特征工程中,它常用于判断是否存在高度相关的变量,以避免共线性问题。

(1)优点
  • 可以直观展示多个变量之间的线性关系强弱。

  • 利用颜色、数值或符号强化信息,使人一目了然。

  • 在特征选择、数据清洗、降维分析中有重要应用价值。

  • 可作为探索性数据分析(EDA)阶段的核心工具之一。

(2)缺点
  • 它只能展示线性相关性,对于非线性关系(如指数关系、阶跃函数)无能为力。

  • 如果变量很多(例如几十个),图形可能会显得拥挤,不易辨识。

  • 容易误导非专业用户将“相关”误认为“因果”。

2.应用场景

探索性数据分析(EDA):数据科学家初步了解变量之间的关联。

特征筛选:在机器学习建模前,筛除强相关冗余特征,避免多重共线性。

金融分析:用于分析多个资产(如股票、债券)之间的联动性。

医学研究:用于观察不同临床指标或生化指标之间的统计联系。

社交网络分析(拓展版):当用图论方式可视化变量联系时,可演化为相关网络图。

3.python实现

(1)代码 
import pandas as pd
import plotly.express as px
from sklearn.datasets import load_iris# 加载 iris 数据集
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)# 计算相关系数矩阵
corr_matrix = df.corr().round(2)  # 保留两位小数# 创建交互式相关图
fig = px.imshow(corr_matrix,text_auto=True,                 # 显示数值color_continuous_scale='RdBu_r',zmin=-1, zmax=1,title="Iris 数据集特征的相关图"
)# 图表美化
fig.update_layout(width=700,height=600,margin=dict(l=40, r=40, t=60, b=40),coloraxis_colorbar=dict(title="相关系数")
)
fig.write_html("interactive_correlation_matrix.html")# # 展示图表
# fig.show()
(2)实现结果

4.变体

(1)符号图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
# 指定中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC", "sans-serif"]
# 构造数据集
X, _ = make_classification(n_samples=500, n_features=20, n_informative=10, random_state=42)
df = pd.DataFrame(X, columns=[f'Feature_{i}' for i in range(1, 21)])# 计算相关系数矩阵
corr = df.corr()# 绘制符号图
plt.figure(figsize=(12, 12))
plt.title("符号图:变量间相关系数(颜色 + 大小)", fontsize=16)for i in range(len(corr)):for j in range(len(corr.columns)):coef = corr.iloc[i, j]color = 'red' if coef > 0 else 'blue'size = abs(coef) * 700plt.scatter(j, i, s=size, c=color, alpha=0.7)if i != j:plt.text(j, i, f"{coef:.2f}", ha='center', va='center',fontsize=6, color='white' if abs(coef) > 0.6 else 'black')plt.xticks(ticks=range(len(corr.columns)), labels=corr.columns, rotation=90)
plt.yticks(ticks=range(len(corr.columns)), labels=corr.columns)
plt.grid(False)
plt.xlim(-0.5, len(corr.columns) - 0.5)
plt.ylim(len(corr.columns) - 0.5, -0.5)
plt.tight_layout()
plt.show()

(2)网络图
import networkx as nx# 创建图结构
G = nx.Graph()
threshold = 0.6  # 只绘制绝对值大于此阈值的边# 添加节点
for col in corr.columns:G.add_node(col)# 添加边
for i in range(len(corr.columns)):for j in range(i + 1, len(corr.columns)):coef = corr.iloc[i, j]if abs(coef) >= threshold:G.add_edge(corr.columns[i], corr.columns[j], weight=coef)# 绘制网络图
pos = nx.spring_layout(G, seed=42)
edges = G.edges(data=True)plt.figure(figsize=(12, 8))
nx.draw_networkx_nodes(G, pos, node_size=700, node_color='lightblue')
nx.draw_networkx_labels(G, pos, font_size=10)# 边根据正负相关性显示红色或蓝色,粗细反映相关强度
for u, v, d in edges:color = 'red' if d['weight'] > 0 else 'blue'width = abs(d['weight']) * 4nx.draw_networkx_edges(G, pos, edgelist=[(u, v)], width=width, edge_color=color)plt.title("网络图:强相关变量连接图(红色正相关,蓝色负相关)", fontsize=14)
plt.axis('off')
plt.tight_layout()
plt.show()

四、热力图

        热力图是一种以颜色深浅来表示数值大小的二维数据可视化图表。它将矩阵中每个数值映射为一个颜色格子,从而帮助我们快速识别模式、聚类、异常值等。热力图最常见的形式是以表格样式呈现数值之间的变化,通过色带(如从浅蓝到深蓝、浅红到深红)呈现数值的梯度变化。

1.特点

        热力图的最大优势是直观地将数值差异通过颜色强化出来,适合人眼快速感知。它是一种面向“整体趋势”和“结构性”判断的图形工具,非常适合探索性数据分析和模式识别。

(1)优点

它可以让人一眼识别出哪些数值大、哪些数值小。通过颜色梯度而非数值标签来呈现数据,极大提高了信息密度。

它特别适合展示矩阵结构的数据,比如相关系数矩阵、混淆矩阵、距离矩阵、评分矩阵等。

在配合聚类、层次聚类等技术时,热力图可以进一步增强可视化效果,用于揭示行列之间的相似性。

(2)缺点

热力图对颜色选择和比例敏感,如果配色不合理或数值分布极端,可能导致颜色误导。

热力图不适合显示精确数值,更多用于趋势感知。 

2.应用场景

        热力图广泛应用于数据科学、商业分析、生物信息学、社会科学等领域。具体场景包括但不限于以下几种:

相关分析中,用热力图展示变量间的 Pearson 相关系数,是特征工程中的常规操作。

混淆矩阵可视化中,热力图可以直观展示分类模型预测的 TP/TN/FP/FN 分布。

市场分析中,用热力图展示不同区域、时间、产品的销售额或满意度分布。

生物信息学中,用热力图分析基因表达、样本相似性等,是标准工具。

时间序列分析中,热力图可用来展示不同时间段指标的热度。

3.python实现

(1)代码 
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns# 设置中文字体(可选:根据环境添加字体)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体(如黑体)
plt.rcParams['axes.unicode_minus'] = False    # 正常显示负号# 模拟数据
cities = ['北京', '上海', '广州', '深圳', '杭州']
days = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']# 构造 300 条随机城市-日期数据(模拟人流样本)
np.random.seed(42)
df = pd.DataFrame({'城市': np.random.choice(cities, 300),'日期': np.random.choice(days, 300)
})# 创建交叉表:每个城市在每个星期的出现次数
pivot = pd.crosstab(df['日期'], df['城市'])# 热力图绘制
plt.figure(figsize=(12, 6))
sns.heatmap(pivot,annot=True,fmt='d',cmap='YlOrRd',linewidths=0.5,linecolor='gray',cbar_kws={'label': '人流量频次'}
)
plt.title("不同城市在一周内的人流量热力图", fontsize=16)
plt.xlabel("城市", fontsize=12)
plt.ylabel("星期", fontsize=12)
plt.tight_layout()
plt.show()
(2)实现结果 

五、二维密度图

        二维密度图是一种用于展示两个连续变量联合分布特征的可视化图表。它是直方图和核密度估计(KDE)的扩展,通过对散点分布区域进行平滑估计,生成连续的密度层,用色彩深浅或等高线描绘“数据密集程度”。通常以热图(Heat-style)或等高线(Contour-style)呈现。

        它可被视为“散点图 + 概率密度估计”的组合,可以清晰展示数据在二维平面中的集中区域、轮廓走势与边界密度变化。 

1.特点

        二维密度图最大的特点是它不仅仅展示数据点的位置,还通过平滑估计出的密度层,展现数据分布的形状与浓度。相比散点图,它能更有效地解决数据点重叠过密、无法区分密集度的问题。

(1)优点

二维密度图能够直观揭示数据集中程度、聚集区域、潜在模式或异常值。尤其当散点图“过密”时,二维密度图可以清晰呈现热点区域。 

它适合处理大量样本,能够在保持整体结构的同时,减少图形杂乱。

它还可以与散点图叠加使用,以达到既显示数据点又突出热点分布的效果。

(2)缺点

图形的呈现依赖核函数和带宽选择,不当的参数可能导致误导性的模式。

密度图反映的是概率估计而非真实频次,用户容易误解为数量统计图。

对于稀疏数据或类别型变量,它并不适用。 

2.应用场景

        二维密度图常用于探索性数据分析阶段,用以观察两个变量之间是否存在聚集、分布结构或关联模式。典型场景包括:

可视化两个数值变量的联合分布特征,如收入 vs 支出、年龄 vs 成绩。

对高密度数据集的散点图做视觉简化。

检测数据聚类结构或潜在分布模型(尤其在无监督学习前期)。

用于分析用户行为的“热点区域”,如点击位置热度分布。

与散点图结合,作为“背景热度图”增强直观感。

3.python实现

(1)代码 
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False  # 解决负号显示问题# 生成示例数据:模拟三个城市的AQI与PM2.5关系
np.random.seed(42)
n_samples = 100# 北京数据(污染较高)
bj_aqi = np.random.normal(120, 40, n_samples)
bj_pm25 = 0.6 * bj_aqi + np.random.normal(0, 15, n_samples)# 上海数据(污染中等)
sh_aqi = np.random.normal(80, 30, n_samples)
sh_pm25 = 0.5 * sh_aqi + np.random.normal(0, 10, n_samples)# 广州数据(污染较低)
gz_aqi = np.random.normal(60, 25, n_samples)
gz_pm25 = 0.4 * gz_aqi + np.random.normal(0, 8, n_samples)# 创建DataFrame
df_bj = pd.DataFrame({'城市': '北京', 'AQI': bj_aqi, 'PM2.5': bj_pm25})
df_sh = pd.DataFrame({'城市': '上海', 'AQI': sh_aqi, 'PM2.5': sh_pm25})
df_gz = pd.DataFrame({'城市': '广州', 'AQI': gz_aqi, 'PM2.5': gz_pm25})df = pd.concat([df_bj, df_sh, df_gz], ignore_index=True)# 创建画布
plt.figure(figsize=(14, 10))# 使用seaborn绘制二维密度图
g = sns.jointplot(data=df,x="AQI", y="PM2.5",hue="城市",kind="kde",fill=True,thresh=0,levels=100,cmap="viridis",height=8
)# 添加散点图作为参考
sns.scatterplot(data=df,x="AQI", y="PM2.5",hue="城市",alpha=0.6,edgecolor="w",ax=g.ax_joint
)# 设置标题和标签
g.fig.suptitle("各城市AQI与PM2.5浓度的二维密度分布", fontsize=16, y=1.02)
g.set_axis_labels("空气质量指数 (AQI)", "PM2.5浓度", fontsize=14)# 调整图例
plt.legend(title="城市", fontsize=12, title_fontsize=13)# 显示图形
plt.tight_layout()
plt.show()
(2)实现结果 

 

六、三维密度图

        三维密度图是二维密度估计(KDE)的拓展,用于可视化三个连续变量之间的联合分布结构。它通常使用三维坐标轴(X、Y、Z)呈现空间中的数据点密集程度,Z 轴或颜色代表密度值。常见呈现形式包括三维等高面图(3D surface plot)体积图(volume plot)。相比于二维密度图,它进一步扩展了可视范围,可以同时展现更高维度的数据关系。 

1.特点

        三维密度图的最大特点是能够将数据的分布结构立体化地呈现出来。它不仅保留了二维密度图的“热点区域”优势,还提供了一个高度维度,展现变量间更复杂的联合概率估计。

(1)优点

它可以展示三个变量的联合结构,适合理解高维数据分布。

它在空间形态上能清晰体现多模态分布(多个峰值)或密度山谷等结构特征。

它适合在建模前判断数据是否呈现多中心或集中性,并能作为非线性模型选择参考。

(2)缺点

        由于三维图本身视觉复杂,阅读成本较高,在静态图中尤为明显。其次,三维密度估计计算成本高,对样本量和核函数敏感。另外,不适合用于对变量进行精准定量分析,更多用于辅助探索。

2.应用场景

用于可视化三个连续变量的联合概率密度函数;

用于建模前的探索性数据分析,判断变量之间的集中区域;

在多峰分布、多类别重叠等场景中,用于辅助聚类和降维;

在流量建模、行为分析、环境模拟等空间型数据中展示概率分布特征;

在教学、科研中用于展示高维概率建模结果的形态。

 3.python实现

(1)代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC", "sans-serif"]
# 生成示例数据
np.random.seed(0)
x = np.random.normal(0, 1, 500)
y = np.random.normal(1, 1.5, 500)# KDE 拟合
xy = np.vstack([x, y])
kde = gaussian_kde(xy)# 网格生成
xgrid, ygrid = np.mgrid[-4:4:100j, -4:6:100j]
grid_coords = np.vstack([xgrid.ravel(), ygrid.ravel()])
z = kde(grid_coords).reshape(xgrid.shape)# 绘图
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(xgrid, ygrid, z, cmap='viridis', edgecolor='none', alpha=0.8)ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("密度")
ax.set_title("三维密度曲面图")
plt.tight_layout()
plt.show()
(2)实现结果 

4.变体——三维密度体积图 

(1)python实现代码
import numpy as np
import plotly.graph_objects as go
from scipy.stats import gaussian_kde# 生成 3D 样本数据
np.random.seed(0)
x = np.random.normal(0, 1, 500)
y = np.random.normal(1, 1.2, 500)
z = np.random.normal(2, 0.8, 500)# 进行 3D KDE 拟合
xyz = np.vstack([x, y, z])
kde = gaussian_kde(xyz)# 生成网格
grid_x, grid_y, grid_z = np.mgrid[-3:3:30j, -2:4:30j, 0:5:30j]
grid_coords = np.vstack([grid_x.ravel(), grid_y.ravel(), grid_z.ravel()])
density = kde(grid_coords).reshape(grid_x.shape)# 创建 Plotly 交互式体积图
fig = go.Figure(data=go.Volume(x=grid_x.flatten(),y=grid_y.flatten(),z=grid_z.flatten(),value=density.flatten(),isomin=density.min() + 0.01 * (density.max() - density.min()),isomax=density.max(),opacity=0.1,surface_count=20,colorscale='Viridis',caps=dict(x_show=False, y_show=False, z_show=False)
))fig.update_layout(title='三维密度体积图(KDE估计)',scene=dict(xaxis_title='X',yaxis_title='Y',zaxis_title='Z'),width=800,height=700
)# 显示图表
fig.show()
fig.write_html("i.html")
  (2)实现结果

七、雷达图

        雷达图是一种用于展示多维变量之间比较关系的图表,其将每个维度作为一个射线,从圆心出发依次向外延展,各变量值在这些维度上形成顶点,最终通过连线形成一个封闭多边形。若有多个样本或类别,可在同一张图上重叠多个雷达轮廓,直观比较其在各维度上的表现。

        雷达图将原本的表格数据、列表数据或者多变量评估值,通过放射状结构进行视觉统一,是一种强调多维“对比”而非精确数值的图形形式。

1.雷达图的特点

        雷达图的最大优势在于它可以一次性将多个维度的数据投影到二维图形中,形成对称或不对称的形态,使得用户能够快速识别不同样本之间在各维度上的强弱分布。

(1)优点
  • 它可以清晰展示多维数据结构,尤其适合“雷达型评估”或“指标雷达”这类场景。

  • 雷达图直观易懂,适合非专业读者快速判断不同项目在各维度上的强弱点。

  • 在强调综合能力或相对分布时,它能以“图形轮廓”的方式呈现差异,识别优势劣势。

(2)缺点
  • 维度过多时,图形变得拥挤杂乱,不易解读。

  • 它对尺度不敏感,尤其是在视觉上容易误导读者对面积与值的关系。

  • 不同维度之间可能没有本质可比性,强行绘图可能会产生假象。 

2.应用场景

        雷达图广泛应用于需要评估、比较、可视化多个维度特征分布的场合,尤其适合:

  • 个体与个体、或个体与平均的多维对比分析;

  • 不同类别在各维度能力表现对比,如运动员、模型、部门;

  • 产品性能指标对比,如手机参数、车企性能评分;

  • KPI 综合评估,绩效考核图形化展示;

  • 教学评估、学生能力画像等场景。

3.python实现

(1)代码 
import numpy as np
import matplotlib.pyplot as plt# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False  # 解决负号显示问题# 定义评估指标
categories = ['AQI指数', 'PM2.5', 'PM10', 'SO2', 'NO2', 'CO']
num_categories = len(categories)# 定义各城市数据(范围0-100)
data = {'北京': [65, 70, 80, 40, 60, 50],'上海': [55, 60, 65, 35, 70, 45],'广州': [45, 40, 50, 30, 55, 40],'成都': [50, 65, 55, 45, 50, 45],'哈尔滨': [60, 75, 70, 50, 45, 55]
}# 创建雷达图
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, polar=True)# 计算每个角度
angles = np.linspace(0, 2*np.pi, num_categories, endpoint=False).tolist()# 闭合雷达图数据(仅用于绘图,不改变原始categories)
categories_for_plot = categories + [categories[0]]
for city in data:values = data[city] + [data[city][0]]ax.plot(angles + [angles[0]], values, linewidth=2, label=city)ax.fill(angles + [angles[0]], values, alpha=0.1)# 设置坐标轴(使用原始categories,长度为6)
ax.set_thetagrids(np.degrees(angles), categories)
ax.set_ylim(0, 100)
ax.set_title('各城市空气质量多维度对比', fontsize=16, pad=20)# 添加图例
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1))# 显示图形
plt.tight_layout()
plt.show()import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
from matplotlib.lines import Line2D# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# 标签与数据
labels = ['战略思维', '数据分析', '沟通能力', '技术深度', '项目管理', '领导力', '执行效率', '创新能力', '学习成长']
num_vars = len(labels)data = {'Leader A': [90, 80, 85, 70, 75, 95, 88, 80, 92],'Leader B': [75, 70, 90, 65, 85, 80, 82, 88, 76],'Leader C': [60, 75, 70, 90, 60, 65, 70, 85, 80],'Leader D': [80, 65, 60, 75, 90, 78, 76, 70, 88]
}
df = pd.DataFrame(data, index=labels)# 创建角度坐标
angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()
angles += angles[:1]  # 闭合曲线# 初始化图
fig, ax = plt.subplots(figsize=(9, 9), subplot_kw=dict(polar=True))
ax.set_theta_offset(np.pi / 2)
ax.set_theta_direction(-1)# 设置维度标签
plt.xticks(angles[:-1], labels, fontsize=12)# 设置背景层级线
ax.set_rlabel_position(0)
plt.yticks([20, 40, 60, 80, 100], ["20", "40", "60", "80", "100"], color="gray", size=10)
plt.ylim(0, 100)# 配置颜色与线型
colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728']
linestyles = ['solid', 'dashed', 'dashdot', 'dotted']# 绘制每个样本
for i, (name, values) in enumerate(df.items()):stats = values.tolist()stats += stats[:1]ax.plot(angles, stats, label=name, color=colors[i], linewidth=2, linestyle=linestyles[i])ax.fill(angles, stats, color=colors[i], alpha=0.2)# 添加图例与标题
legend_elements = [Line2D([0], [0], color=colors[i], lw=2, linestyle=linestyles[i], label=name)for i, name in enumerate(df.columns)]
ax.legend(handles=legend_elements, loc='upper right', bbox_to_anchor=(1.15, 1.1), fontsize=10)plt.title("多维能力对比雷达图", size=16, pad=20)
plt.tight_layout()
plt.show()
(2)实现结果 

 

http://www.khdw.cn/news/20635.html

相关文章:

  • 长沙优化官网收费标准seo优化上海牛巨微
  • 做外贸怎样上外国网站德州网站建设优化
  • 网站首页导航栏百度搜索关键词数据
  • 设计网站的方法投放广告
  • 如何利用国外网站做自媒体徐汇网站建设
  • 自己的网站怎么做砍价seo优化靠谱吗
  • 搞笑资讯网站源码如何做网站优化
  • 手机低价购买网站如何让自己的网站排名靠前
  • 哪有做企业网站网站注册页面
  • 如何做的网站手机可以用吗竞价运营是做什么的
  • 吃鸡辅助群的购卡链接网站怎么做营销策划的六个步骤
  • 网站开发避免dns劫持百度热门排行榜
  • 中国教学网站bing搜索引擎入口官网
  • 网站广告推广怎么做竞价排名
  • 一个网站的欢迎页怎样做app关键词推广
  • 公司设计品牌公司网页搜索优化
  • 昆明高端网站建设泉州百度关键词优化
  • 免费网站建设特色中国搜索引擎市场份额
  • 政府网站建设网页设计规范网络推广员是什么
  • 昭通建网站做网站的费用
  • 贵州专业网站建设公司查询域名注册信息
  • 网站建设的公司推荐淘宝代运营公司排名
  • 河北城乡建设厅网站百度知道在线问答
  • 高端网站设计报价表哪里有培训网
  • 深圳怎么做网站微信营销推广方案
  • 邳州网站建设广东最新疫情
  • 自家房子做民宿的网站市场营销互联网营销
  • 济源网站制作最好的免费推广平台
  • 曲靖手机网站建设昆明抖音推广
  • 佘山网站建设百度提交网址入口