📅  最后修改于: 2023-12-03 14:52:08.470000             🧑  作者: Mango
在数据可视化中,散点图是一种非常实用的图形。散点图可以展示数据的分布情况,体现出数据之间的关系。而在一些情况下,数据可能有正数和负数之分,这时候需要创建带有正轴和负轴的散点图,以便更加直观地展示数据。
在使用散点图时,首先需要准备数据。我们可以通过 Python 的 numpy 库来生成数据。
import numpy as np
# 生成数据
n = 100
x = np.random.randn(n)
y = np.random.randn(n)
# 将所在象限进行分类
x1, x2 = x[x >= 0], x[x < 0]
y1, y2 = y[y >= 0], y[y < 0]
以上代码中,我们生成了 100 个随机数,代表 x 和 y 轴的数值。接着,我们通过条件判断将数据分为正数部分和负数部分,分别存储在 x1、x2、y1、y2 四个变量中。
接下来,我们使用 matplotlib 库来创建散点图。matplotlib 是 Python 用于绘制数据图表的常用库,使用非常方便。
import matplotlib.pyplot as plt
# 设置画布大小
plt.figure(figsize=(6, 6))
# 绘制散点图(正数部分)
plt.scatter(x1, y1, color='blue')
# 绘制散点图(负数部分,需要取绝对值反转坐标轴)
plt.scatter(abs(x2), abs(y2), color='red')
# 设置坐标轴范围
plt.xlim(-6, 6)
plt.ylim(-6, 6)
# 绘制坐标轴并隐藏右侧和上方的边框
plt.axhline(0, color='black', linewidth=2)
plt.axvline(0, color='black', linewidth=2)
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
# 添加标题和标签
plt.title('Scatter plot with positive and negative axis')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
# 显示图形
plt.show()
以上代码中,我们先设置了画布的大小,然后通过 scatter() 方法绘制两个散点图。其中,第一个散点图用蓝色表示正数部分,第二个散点图用红色表示负数部分。需要注意的是,对于负数部分的散点图,我们需要将横纵坐标的负数部分取绝对值并反转坐标轴。
接着,我们使用 xlim() 和 ylim() 方法来设置坐标轴范围,并使用 axhline() 和 axvline() 方法绘制坐标轴,并隐藏右侧和上方的边框。最后,我们添加了标题和标签,并使用 show() 方法显示图形。
通过以上的步骤,我们成功地创建了带有正轴和负轴的散点图。在实际应用中,我们可以灵活运用这些方法,创建出更加直观和有效的数据可视化图形。