美文网首页
matplotlib之散点图

matplotlib之散点图

作者: 崔吉龙 | 来源:发表于2019-03-08 11:12 被阅读0次

问题描述

散点图展示数据的聚集,而不是趋势(如线图)或者离散值(如柱状图)。散点图的目的是帮助你看数据模式。

基本散点图演示

以下代码展示了如何用随机数创建散点图:

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

相关文章

网友评论

      本文标题:matplotlib之散点图

      本文链接:https://www.haomeiwen.com/subject/lgfeeqtx.html