创建散点图:用 Python 展示数据

파이썬으로 분산형 차트 그리기
(用 Python 绘制散点图)

想要一目了然地了解多个数据之间的关系? 散点图是最佳选择,尤其是当你为不同类别添加不同颜色和趋势线时,即使是复杂的数据也更容易理解。

在本文中,我们将向您展示如何使用 Python"(《世界人权宣言》) matplotlib和 numpy来逐步讲解。我们还提供了添加趋势线、应用样式等实用技巧,千万不要错过!

什么是散点图?

분산형 차트 이용 인사이트

散点图是直观表示两个变量之间关系的强大工具。您可以将数据放在 x 轴和 y 轴上,每个点的位置代表一个特定的数据。

通过散点图,您可以深入了解

  • 变量之间的相关性(正相关、负相关、无相关)。
  • 数据中的模式和集群。
  • 离群点检测

用 Python 绘制散点图

下面的代码显示了 按分类数据分列的散点图并添加一条趋势线。

将 numpy 导入 np
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc

设置 # 韩文字体
rc('font', family='HCR Dotum')

生成 # 随机数据
np.random.seed(42)
x = np.random.normal(0, 1, 100)
y = x * 0.5 + np.random.normal(0, 0.5, 100)
categories = np.random.choice(['A', 'B', 'C'], 100)

设置 # 图表样式
plt.style.use('ggplot') 更改为 # ggplot 风格
plt.figure(figsize=(10, 6))

# 为不同类别生成不同颜色的散点图
for category in np.unique(categories):
    mask = categories == category
    plt.scatter(x[mask], y[mask]、
                label=category、
                alpha=0.6、
                s=100)

添加 # 趋势线
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x, p(x), "r--", alpha=0.8)

装饰 # 图形
plt.title("Scatter Plot with Trend Line", pad=20)
plt.xlabel("X 变量")
plt.ylabel("Y Variable")

添加 # 网格
plt.grid(True, linestyle='--', alpha=0.7)

显示 # 图例
plt.legend(title="Categories", loc='upper left')

设置 # 轴范围
plt.xlim(min(x)-0.5, max(x)+0.5)
plt.ylim(min(y)-0.5, max(y)+0.5)

保存并显示 # 图形
plt.savefig('scatter_plot.png', dpi=300, bbox_inches='tight')
plt.show()

代码评注

  1. 导入图书馆:
    • numpy:生成数据并用于计算。
    • matplotlib.pyplot创建散点图的主要工具。
  2. 韩文字体设置: rc('font', family='HCR Dotum')
    • 设置以韩文显示图表标题和标签的字体。
  3. 生成数据: np.random.seed(42) x = np.random.normal(0, 1, 100) y = x * 0.5 + np.random.normal(0, 0.5, 100) categories = np.random.choice(['A', 'B', 'C'], 100)
    • x数据:数据来自正态分布,均值为 0,标准差为 1。
    • y: x并增加一些噪音。
    • 类别类别:随机分配 A、B 或 C 中的一个类别。
  4. 按类别创建散点图: for category in np.unique(categories): mask = categories == category plt.scatter(x[mask], y[mask], label=category, alpha=0.6, s=100)
    • 创建一个散点图,每个类别(A、B、C)用不同的颜色表示。
  5. 添加趋势线: z = np.polyfit(x, y, 1) p = np.poly1d(z) plt.plot(x, p(x), "r--", alpha=0.8)
    • np.polyfit计算 X 和 Y 之间的线性回归。
    • np.poly1d生成回归多项式,并将其表示为趋势线。
  6. 设置样式和视觉元素:
    • 设置标题、X/Y 轴标签: plt.title("Scatter Plot with Trend Line", pad=20) plt.xlabel("X 变量") plt.ylabel("Y 变量")
    • 类别说明见图例 (plt.legend).
  7. 保存和打印: plt.savefig('scatter_plot.png', dpi=300, bbox_inches='tight') plt.show()
    • 以高分辨率保存图表 (散点图.png) 和输出。

使用散点图

1. 相关变量

  • 正相关:X 增加,Y 也增加的模式。
    • 举例说明:如果广告支出(X)的增加导致销售额(Y)的增加。
  • 负相关:Y 随 X 的增加而减少的模式。
    • 举例说明:如果价格(X)上涨导致销售额(Y)下降。
  • 没有关系:X 和 Y 之间没有关系。
    • 例如,特定地区的天气和该地区的互联网流量。

散点图能让你直观地感受到相关性,然后在此基础上进行更深入的数据分析。

2. 数据分布和集群检测

  • 识别数据集群
    散点图是查看数据是否集中(聚类)在某些区域的最佳工具。
    • 举例说明:当你绘制顾客年龄(X)与购买频率(Y)的散点图时,你可能会发现一个规律,即某个年龄段的顾客购买频率更高。
  • 离群点检测
    异常值数据显示出与其他数据明显不同的模式。异常值很容易直观地发现,因为它们在散点图中显示为突出的离群点。

3. 可视化数据分类和类别

  • 如果数据分为多个类别,散点图是一种有效的表示方法。
    • 举例说明:按产品类别(A、B、C)分列的销售额(X)和客户满意度(Y)的散点图,每个类别的特征用颜色标示。
  • 您可以按类别分析数据模式,查看某些类别是否比其他类别表现更好。

4. 回归分析和预测建模

  • 添加趋势线:在散点图中添加趋势线,以便更好地分析数据之间的关系。
    • 示例:将住宅区(X)和房价(Y)绘制成散点图,然后添加一条趋势线,从而直观地显示房价的变化。
  • 这些趋势是设计预测模型和做出数据驱动决策的重要参考点。

5. 营销和绩效分析

  • 客户行为分析
    • 查看哪个年龄组的客户最活跃,用年龄(X)和每月购买次数(Y)表示。
  • 跟踪性能指标
    • 通过表达广告活动的点击率(X)和转化率(Y),您可以用数据说明哪些广告表现更好。

组织起来

在本篇文章中,您将学习如何在 Python 中实施散点图绘制,以可视化数据中的关系和模式。 趋势线和分类有助于您更清晰地分析数据。

您可以使用上面的代码将各种数据可视化!何不用 Python 迈出数据分析的第一步?如果你想更进一步,提高自己的 Python 可视化技能,请查看 如何使用 Python 可视化技术绘制和嵌套圆环图 看看这篇文章!

类似文章