Python 绘图库 Matplotlib 入门代码实例(3)

# randint是不是就是去随机的整数呢
# 柱形的高度随机生成
data = np.random.randint(low=0, high=100, size=N)
# 随机生成颜色
colors = np.random.rand(N * 3).reshape(N,-1)
# labels指定了标签
labels = ["Linux", "Ubuntu", "CentOS", "Fedora", "openSUSE", "Linuxidc.com", "Debian"]

# title指定了图形的标题,
plt.title("Weekday Data")

# alpha是透明度
plt.bar(x, data, alpha=0.8, color=colors, tick_label=labels)

# 增加数值
for x, y in zip(x, data):
    plt.text(x, y , '%.2f' % y, ha='center', va='bottom')

plt.show()

代码解析:

1、绘制了7个随机值的高度在[0:100]之间的柱形。

2、colors = np.random.rand(N * 3).reshape(N,-1)表示先生成21(Nx3)个随机数,然后将他们组装成7行,那么每行就是三个数,这对应了颜色的三个组成部分。(这里7行-1列是什么意思呀)

3、title是指图形的标题,labels指定了标签,alpha是透明度

4、plt.text()标记柱形的数值

运行结果:

Python 绘图库 Matplotlib 入门代码实例

直方图——hist

直方图是描述数据中某范围内数据出现的频率,

先上代码:

import matplotlib.pyplot as plt
import numpy as np

# 生成3组数据
data = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]]
labels = ['3K', '4K', '5K'] # 设置标签

# 设置数据点
bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000]

plt.hist(data, bins=bins, label=labels)
plt.legend()

plt.show()

代码解析:

[np.random.randint(0, n, n) for n in [3000, 4000, 5000]]生成了包含三个数组的列表。

第一个数组包含了3000个随机数,这些随机数的范围是 [0, 3000)

第二个数组包含了4000个随机数,这些随机数的范围是 [0, 4000)

第三个数组包含了5000个随机数,这些随机数的范围是 [0, 5000)

2、bins数组用来指定我们显示的直方图的边界,即:[0, 100) 会有一个数据点,[100, 500)会有一个数据点,以此类推。所以最终结果一共会显示7个数据点。

运行结果:

Python 绘图库 Matplotlib 入门代码实例

我们看到,三组数据在3000以下都有数据,并且频度是差不多的。但蓝色条只有3000以下的数据,橙色条只有4000以下的数据。这与我们的随机数组数据刚好吻合。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/882a0d8e21b277a856bd77727ed478b0.html