河北手机网站制作企业自己怎么做关键词优化
目录
一、散点图
二、气泡图
三、相关图
四、热力图
五、二维密度图
六、平行坐标图
七、网络图
一、散点图(Scatter Plot)
特点:通过二维平面上的点分布展示两个变量的相关性,点的位置由变量值决定,可直观判断线性相关、非线性相关或无相关关系。
应用场景:
- 探索性数据分析(如身高与体重的相关性)。
- 机器学习特征筛选(判断特征与目标变量的关联)。
- 科学研究中变量关系验证(如温度与化学反应速率)。
Python实现:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns# 生成示例数据
np.random.seed(42)
x = np.random.normal(0, 1, 100)
y = 2 * x + np.random.normal(0, 0.5, 100) # 线性相关# 绘制散点图
plt.figure(figsize=(8, 6))
plt.scatter(x, y, color='skyblue', edgecolor='k', alpha=0.7)
plt.title('散点图:线性相关示例', fontsize=14)
plt.xlabel('变量X', fontsize=12)
plt.ylabel('变量Y', fontsize=12)
plt.grid(True, alpha=0.3)
plt.show()# 计算相关系数
corr = np.corrcoef(x, y)[0, 1]
print(f"皮尔逊相关系数:{corr:.4f}")
结果如下:
结果:生成散点图显示点沿直线分布,相关系数接近1,表明强正相关。
二、气泡图(Bubble Chart)
特点:在散点图基础上增加第三个维度,用气泡大小表示数值,可展示三维数据的相关性。
应用场景:
- 市场分析(如产品价格、销量、利润的关系)。
- 地理数据可视化(城市人口、GDP、面积的对比)。
- 生物学研究(细胞大小、数量、活性的多变量分析)。
Python实现:
# 生成三维数据
np.random.seed(42)
x = np.random.uniform(1, 10, 50)
y = np.random.uniform(1, 10, 50)
size = np.random.uniform(100, 500, 50) # 气泡大小# 绘制气泡图
plt.figure(figsize=(9, 7))
scatter = plt.scatter(x, y, s=size, c=size, cmap='viridis', alpha=0.7, edgecolor='k')
plt.colorbar(label='气泡大小(第三维度)')
plt.title('气泡图:三维数据可视化', fontsize=14)
plt.xlabel('变量X', fontsize=12)
plt.ylabel('变量Y', fontsize=12)
plt.grid(True, alpha=0.3)# 添加示例标注
for i in range(3):plt.annotate(f'点{i+1}', (x[i], y[i]), xytext=(5, 5), textcoords='offset points')
plt.show()
结果如下:
结果:气泡大小和颜色随第三维度数值变化,可直观比较多变量关系。
三、相关图(Correlation Plot)
特点:展示多个变量间的相关系数矩阵,通常用颜色深浅表示相关强度,可快速识别变量对的相关性。
应用场景:
- 数据预处理(筛选高度相关的特征以避免多重共线性)。
- 社会科学研究(如教育程度、收入、年龄的相关性分析)。
- 金融领域(股票收益率的相关性矩阵)。
Python实现:
# 生成多变量数据
np.random.seed(42)
n = 100
data = np.random.multivariate_normal(mean=[0, 0, 0, 0],cov=[[1, 0.7, 0.3, 0.1],[0.7, 1, 0.5, 0.2],[0.3, 0.5, 1, 0.6],[0.1, 0.2, 0.6, 1]],size=n
)
df = pd.DataFrame(data, columns=['A', 'B', 'C', 'D'])# 计算相关系数矩阵
corr_matrix = df.corr()# 绘制相关图
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f', linewidths=1, cbar_kws={'label': '相关系数'})
plt.title('变量相关系数矩阵图', fontsize=16)
plt.show()
结果如下:
结果:热力图形式展示相关系数,颜色越暖(红)表示正相关越强,越冷(蓝)表示负相关越强。
四、热力图(Heatmap)
特点:用颜色矩阵展示二维数据的数值分布,适用于展示矩阵数据的相关性、频率或密度。
应用场景:
- 基因表达数据可视化(不同样本的基因表达强度)。
- 时间序列分析(如年度气温变化热力图)。
- 用户行为分析(网页点击热力图)。
Python实现:
# 生成热力图数据(示例:月度销售数据)
months = list(range(1, 13))
products = [f'产品{i}' for i in range(1, 6)]
sales_data = np.random.randint(100, 1000, size=(5, 12))# 转换为DataFrame
df_heatmap = pd.DataFrame(sales_data, index=products, columns=months)# 绘制热力图
plt.figure(figsize=(12, 8))
sns.heatmap(df_heatmap, annot=True, cmap='YlGnBu', fmt='d', linewidths=0.5, cbar_kws={'label': '销售量'})
plt.title('产品月度销售热力图', fontsize=16)
plt.xlabel('月份', fontsize=12)
plt.ylabel('产品类别', fontsize=12)
plt.show()
结果如下:
结果:颜色深浅直观显示不同产品在各月的销售差异,便于发现销售高峰和低谷。
五、二维密度图(2D Density Plot)
特点:通过颜色或等高线展示二维数据的分布密度,比散点图更适合大数据量的相关性可视化。
应用场景:
- 金融数据分布分析(如股票收益率的联合分布)。
- 地理数据密度展示(人口密度、犯罪率热点区域)。
- 物理学研究(粒子运动的二维概率密度)。
Python实现:
# 生成二维正态分布数据
np.random.seed(42)
x = np.random.normal(0, 1, 1000)
y = 0.8 * x + np.random.normal(0, 0.5, 1000)# 绘制二维密度图(核密度估计)
plt.figure(figsize=(9, 7))
sns.kdeplot(x=x, y=y, cmap='Reds', shade=True, shade_lowest=False)
plt.scatter(x, y, c='white', s=10, edgecolor='k', alpha=0.3)
plt.title('二维密度图:核密度估计', fontsize=14)
plt.xlabel('变量X', fontsize=12)
plt.ylabel('变量Y', fontsize=12)
plt.colorbar(label='密度')
plt.grid(True, alpha=0.2)
plt.show()
结果如下:
结果:颜色越深区域表示数据点越密集,结合散点图可同时观察整体分布和具体数据点。
六、平行坐标图(Parallel Coordinates Plot)
特点:用多条平行坐标轴展示多维数据,每条线代表一个样本,线的交叉点表示该样本在各维度的值,可识别多维变量的相关性模式。
应用场景:
- 医疗数据分析(患者多指标特征的对比)。
- 客户分群(多维度属性的客户特征可视化)。
- 工程数据监测(多传感器数据的异常检测)。
Python实现:
from pandas.plotting import parallel_coordinates# 生成多维数据(示例:3类样本,4个特征)
np.random.seed(42)
data = np.random.randn(100, 4)
# 构造三类样本
class1 = data[:30] + [2, 2, -1, -1]
class2 = data[30:60] + [0, 0, 0, 0]
class3 = data[60:100] + [-2, -2, 1, 1]
df_parallel = pd.DataFrame(np.vstack([class1, class2, class3]), columns=[f'特征{i+1}' for i in range(4)])
df_parallel['类别'] = ['类别1']*30 + ['类别2']*30 + ['类别3']*40# 绘制平行坐标图
plt.figure(figsize=(12, 8))
parallel_coordinates(df_parallel, '类别', colormap=plt.cm.Set1)
plt.title('多维数据平行坐标图', fontsize=16)
plt.grid(True, alpha=0.3)
plt.show()
结果如下:
结果:不同颜色的线条代表不同类别,可观察各类别在不同特征上的分布差异及特征间的关联模式。
七、网络图(Network Diagram)
特点:用节点和边展示变量间的关联关系,边的粗细或颜色可表示相关强度,适用于展示复杂网络中的相关性。
应用场景:
- 社交网络分析(用户互动关系强度)。
- 基因调控网络(基因间的调控相关性)。
- 金融风险传导(银行间的风险关联网络)。
Python实现:
import networkx as nx# 生成网络数据(节点间的相关系数)
np.random.seed(42)
nodes = ['A', 'B', 'C', 'D', 'E', 'F']
edges = [('A', 'B', 0.7), ('A', 'C', 0.5), ('B', 'D', 0.8), ('B', 'E', 0.4), ('C', 'E', 0.6), ('D', 'F', 0.3),('E', 'F', 0.5)] # (节点1, 节点2, 相关系数)# 创建网络图
G = nx.Graph()
G.add_nodes_from(nodes)
G.add_weighted_edges_from(edges)# 绘制网络图
plt.figure(figsize=(10, 8))
pos = nx.spring_layout(G, seed=42) # 布局算法
# 边的宽度根据相关系数调整
edge_width = [2 * d['weight'] for u, v, d in G.edges(data=True)]
# 节点颜色根据度数调整(可选)
node_color = [G.degree(n) for n in nodes]nx.draw(G, pos, with_labels=True, node_size=2000, node_color=node_color,cmap='viridis', font_size=12, font_weight='bold',edge_color='black', width=edge_width)
# 添加边的权重标签
edge_labels = {(u, v): f"{d['weight']:.1f}" for u, v, d in G.edges(data=True)}
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)plt.title('变量关联网络图', fontsize=16)
plt.axis('off')
plt.tight_layout()
plt.show()
结果如下:
结果:节点大小和颜色可表示节点重要性,边的粗细表示相关强度,直观展示复杂网络中的关联结构。
总结
相关类可视化图表通过不同维度和形式展示变量间的关联关系,核心作用包括:
- 探索性分析:快速识别变量间的线性/非线性相关、聚类模式或异常点(如散点图、二维密度图)。
- 多维关系展示:处理三维及以上数据时,气泡图、平行坐标图和网络图提供了直观的维度扩展方案。
- 模式识别:热力图和相关图适合批量展示变量对的相关性,便于特征筛选或矩阵分析。
- 复杂网络建模:网络图能揭示变量间的拓扑关联,适用于社交、生物等复杂系统。
相关类可视化图表特点、优缺点及使用场景总结表
图表类型 | 核心特点 | 优点 | 缺点 | 典型使用场景 |
---|---|---|---|---|
散点图 | 二维平面中用点展示两变量关系,点位置由变量值决定,直观呈现线性/非线性关联。 | 简单直观,易理解变量间相关性 可识别异常值和数据分布模式 | 仅适用于两变量分析 大数据量时易重叠,影响可读性 | 探索身高与体重、气温与用电量等两变量关系 机器学习特征初步筛选 |
气泡图 | 在散点图基础上增加第三维度,用气泡大小表示数值,展示三维数据关联。 | 可同时展示三个变量的关系 通过气泡大小突出关键数据点 | 气泡重叠时难以准确读取数值 过多维度可能导致视觉混乱 | 市场分析(价格、销量、利润) 地理数据(人口、GDP、面积)多变量展示 |
相关图(热图) | 以矩阵形式展示变量相关系数,用颜色深浅表示相关强度,快速识别变量对关联。 | 全局展示多变量相关性 颜色编码直观反映正负相关及强度 便于特征筛选 | 仅展示线性相关关系 无法体现非线性关联 变量过多时矩阵过大难以解读 | 数据预处理阶段特征相关性分析 金融市场多资产收益率关联分析 |
热力图 | 用颜色矩阵展示二维数据的数值分布(如频率、密度、强度),适用于矩阵数据可视化。 | 高效展示大面积数据的密度或强度模式 颜色渐变清晰呈现数据高低峰区域 | 需提前定义网格划分,可能丢失细节 非专业用户对颜色映射的理解可能有偏差 | 基因表达数据可视化 用户网页点击热力图分析 年度气温分布展示 |
二维密度图 | 通过颜色或等高线展示数据的二维分布密度,适合大数据量的相关性可视化。 | 平滑展示数据分布趋势,避免散点重叠问题 可识别数据聚集区域和概率密度模式 | 丢失具体数据点信息 难以定位个别异常值 | 金融资产收益率联合分布分析 地理人口密度可视化 物理实验概率密度研究 |
平行坐标图 | 用多条平行坐标轴展示多维数据,每条线代表样本,通过线条走势识别变量间模式。 | 高效展示多维数据的整体分布和变量间关联 便于发现不同样本群体的特征差异 | 维度过多时线条混乱,可读性下降 非直观的可视化形式,需一定学习成本 | 医疗多指标(血压、血糖、胆固醇等)患者数据对比 客户分群多维度属性分析 |
网络图 | 用节点和边展示变量关联关系,边的粗细/颜色表示相关强度,适用于复杂网络建模。 | 直观呈现复杂系统中的关联结构 可突出关键节点(枢纽节点)和连接模式 | 布局算法复杂,大规模网络易混乱 定量分析需结合数值指标 | 社交网络关系分析 基因调控网络可视化 供应链风险传导路径展示 |