文章目录
绘制散点图
代码
import matplotlib.pyplot as plt
import numpy as np
nbPointers = 50
x = np.random.standard_normal(nbPointers)
y = np.random.standard_normal(nbPointers)
np.random.seed(19680801)
colors = np.random.rand(nbPointers)
area = (30 * np.random.rand(nbPointers)) ** 2
plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()
运行结果

代码分析
plt.scatter()不支持将点与点连成线- 在第【14】行代码中,
scatter()函数的参数:
- 参数
s就是plot()函数中的markersize。本例中它的值是一个随机大小的圆,这些随机大小的圆由第【11】行代码产生。 - 参数
c表示点的颜色 - 参数
alpha表示透明度,其大小不超过1,数值越大越不透明。
鸢尾花数据集中的散点图
代码
import matplotlib.pyplot as plt
import numpy as np
data = []
with open('iris.csv', 'r') as file:
lines = file.readlines()
for line in lines:
temp = line.split(',')
data.append(temp)
data_np = np.array(data)
data_np = np.array(data_np[:, :-1]).astype(float)
print(data_np)
feature_name = ['sepal length', 'sepal width', 'petal length', 'petal width']
fig, axes = plt.subplots(3, 2, figsize=(20, 10))
plt.rcParams['font.sans-serif'] = ['SimHei']
fig.suptitle('鸢尾花散点图', fontsize=25)
i = 0
for x in range(data_np.shape[1]):
for y in range(x + 1, data_np.shape[1]):
X = data_np[:, x]
Y = data_np[:, y]
axes[i % 3][i % 2].scatter(X[:40], Y[:40],
marker='x', c='b', label='setosa')
axes[i % 3][i % 2].scatter(X[40:80], Y[40:80],
marker='o', c='r', label='versicolor')
axes[i % 3][i % 2].scatter(X[80:], Y[80:],
marker='*', c='g', label='virginica')
axes[i % 3][i % 2].set_xlabel(feature_name[x], fontsize=10)
axes[i % 3][i % 2].set_ylabel(feature_name[y], fontsize=10)
axes[i % 3][i % 2].legend(loc='best')
i += 1
plt.show()
运行结果
