问题描述
散点图展示数据的聚集,而不是趋势(如线图)或者离散值(如柱状图)。散点图的目的是帮助你看数据模式。
基本散点图演示
以下代码展示了如何用随机数创建散点图:
import numpy as np
import matplotlib.pyplot as plt
x1 = 5 * np.random.rand(40)
x2 = 5 * np.random.rand(40) + 25
x3 = 25 * np.random.rand(20)
x = np.concatenate((x1, x2, x3))
y1 = 5 * np.random.rand(40)
y2 = 5 * np.random.rand(40) + 25
y3 = 25 * np.random.rand(20)
y = np.concatenate((y1, y2, y3))
plt.scatter(x, y, s=[10], marker='^', c='m')
plt.show()
plot_005.png
通过颜色描绘组群
当我们想在散点图中,展示不同组群的数据时,我们可以用颜色来区分。这样就能非常容易的观察不同组群的数据。
import numpy as np
import matplotlib.pyplot as plt
x1 = 5 * np.random.rand(50)
x2 = 5 * np.random.rand(50) + 25
x3 = 30 * np.random.rand(25)
x = np.concatenate((x1, x2, x3))
y1 = 5 * np.random.rand(50)
y2 = 5 * np.random.rand(50) + 25
y3 = 30 * np.random.rand(25)
y = np.concatenate((y1, y2, y3))
colors = ['b'] * 50 + ['g'] * 50 + ['r'] * 25
plt.scatter(x, y, s=[10], marker='D', c=colors)
plt.show()
plot_006.png
做数据的趋势线
有的时候即使做出了散点图,但是数据的整体趋势并不明显,这是可以通过做趋势线来帮助观察。
import numpy as np
import matplotlib.pyplot as plt
x1 = 15 * np.random.rand(50)
x2 = 15 * np.random.rand(50) + 15
x3 = 30 * np.random.rand(30)
x = np.concatenate((x1, x2, x3))
y1 = 15 * np.random.rand(50)
y2 = 15 * np.random.rand(50) + 15
y3 = 30 * np.random.rand(30)
y = np.concatenate((y1, y2, y3))
colors = ['b'] * 50 + ['g'] * 50 + ['r'] * 25
plt.scatter(x, y, s=[10], marker='*', c=colors)
poly = np.polyfit(x, y, 1)
z=np.polyval(poly, x)
plt.plot(x, z, 'm-')
plt.show()
plot_007.png
网友评论