HTML数据可视化散点图,一维数据可视化:散点图(dot plot)

本文介绍了如何使用HTML进行一维数据的可视化,特别是散点图和抖动图的绘制。通过散点图和改进后的层叠、抖动图,可以更清晰地展示数据点的分布和聚集程度。文章还提到了R语言中使用stripchart()函数创建这些图表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在统计分析过程中,有时需要对一维数据(单变量数据)进行可视化,以方便观察数据点分布的特征,并提出基于直观感受的预测。

一维数据

一维数据(单变量数据),顾名思义,就是可以用一个变量来表示的数据集。比如,对CPU的使用率进行随机采样所得到的数据集就是一维数据:

//一维数据示例,CPU使用率

27, 22, 30, 30, 25, 28, 28, 30, 78, 88, 86, 29, 17, 19, 23, 26, 27, 30, 31, 27

散点图

对于一维数据,可以通过散点图来进行可视化。所谓散点图,就是把所有的数据点都描绘在一条直线上(一般使用水平直线),数据点的值决定其在直线上的位置。以上述CPU使用率数据为例,下面就是该数据的散点图:

60097869a1a3fdc0edc9ccc408b35622.png

可以观察到,CPU数据聚集在30附近,并在接近90的地方有几个离散点。

上面的散点图有个问题:数据聚集的地方无法清晰地分辨出聚集程度,而值相同的数据点则会互相遮蔽从而引起误解。

对于散点图的这个问题,一个解决方案是将数据点进行分离,比如将值相同的数据点进行层叠:

5170082d06b76d53d347d2ce49c41ce4.png

可以看到,与之前的散点图相比,数据点分离后的散点图更容易分辨聚集程度。

另一个解决方案则是对所有的散点进行随机离散化(抖动图 jitter plot):

### 使用线性回归模型生成散点图以可视化交通流量预测系统的数据关系 为了更好地理解和展示交通流量预测系统中因变量(如交通流量)与自变量(如时间、天气状况等)之间的关系,可以借助散点图进行可视化。以下是具体的实现方式及相关说明。 #### 散点图的作用 散点图可以帮助我们直观地观察因变量与单个或多个自变量之间的关系是否呈现线性趋势[^2]。这对于验证线性回归模型的前提假设非常重要。如果散点图显示明显的非线性关系,则可能需要考虑其他建模方法,比如多项式回归或随机森林。 #### 绘制一元线性回归的散点图 在一元线性回归的情况下,我们可以直接绘制因变量与单一自变量的散点图,并叠加拟合直线表示两者之间的线性关系。 ```python import matplotlib.pyplot as plt import numpy as np from sklearn.linear_model import LinearRegression # 假设 X 是时间序列数据,y 是对应的交通流量 X = np.array([[t] for t in range(1, 101)]) # 时间序列示例 y = np.random.normal(loc=5 * np.arange(1, 101), scale=10).reshape(-1, 1) # 模拟交通流量 # 训练线性回归模型 model_lr = LinearRegression() model_lr.fit(X, y) # 获取拟合直线的斜率和截距 slope = model_lr.coef_[0][0] intercept = model_lr.intercept_[0] # 绘制散点图及拟合直线 plt.scatter(X, y, color='blue', label="Actual Data Points") # 数据点 plt.plot(X, slope*X + intercept, color='red', linewidth=2, label=f"Fitted Line (y={slope:.2f}x+{intercept:.2f})") # 拟合直线 plt.xlabel("Time") plt.ylabel("Traffic Flow") plt.title("Scatter Plot of Traffic Flow vs Time with Fitted Regression Line") plt.legend() plt.show() ``` 此代码片段展示了如何使用 `matplotlib` 和 `scikit-learn` 来生成带有拟合直线的一元线性回归散点图。 #### 多元线性回归中的散点图 在多元线性回归的情境下,由于涉及多个自变量,无法直接在一个二维平面上展现所有维度的信息。此时通常有两种策略: 1. **主成分分析(PCA)降维**:通过对原始自变量进行主成分提取,将其转换为两个主要方向后再绘制散点图。 2. **分别考察每一对变量的关系**:逐一绘制每个自变量与其对应因变量的散点图。 下面提供一种基于 PCA 的实现方案: ```python from sklearn.decomposition import PCA # 假设有 n 个样本 m 个特征 X_multi = np.random.rand(100, 5) # 示例多维特征矩阵 y_multi = np.dot(X_multi, [1, 2, 3, 4, 5]) + np.random.randn(100) # 构造目标值 # 应用 PCA 将多维特征降到两维 pca = PCA(n_components=2) X_pca = pca.fit_transform(X_multi) # 绘制降维后的散点图 plt.figure(figsize=(8, 6)) scatter = plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y_multi, cmap='viridis') cbar = plt.colorbar(scatter) cbar.set_label('Traffic Flow') plt.xlabel("Principal Component 1") plt.ylabel("Principal Component 2") plt.title("Scatter Plot after PCA Transformation") plt.show() ``` 这段代码实现了将高维空间映射至二维平面的过程,并通过颜色编码反映因变量的变化趋势。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值