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

注意;subplot函数的参数不仅仅支持上面的这种形式,还可以将三个整数(10之内的)合并一个整数。例如:plt.subplot(2,2,1)可以写成plt.subplot(221),结果是一样的。

常用的图形实例

Matplotlib可以生成非常多的图形,常用的有:线形图、散点图、饼状图、条形图、直方图。我们来依次了解一下。

线形图——plot

先上代码

import matplotlib.pyplot as plt

plt.plot([1,2,3],[3,6,9], "-r")
plt.plot([1,2,3],[2,4,9], ":g")

plt.show()

代码解析:

1、plot函数的第一个数组是横轴的值,第二个数组是纵轴的值,

2、最后一个参数是由两个字符构成,分别是线条的样式和颜色。前者是红色的直线,后者是绿色的点线,关于样式和颜色的说明请参见plor函数的APIDoc:matplotlib.pyplot.plot

运行结果如下:

Python 绘图库 Matplotlib 入门代码实例

散点图——scatter

先上代码:

import matplotlib.pyplot as plt
import numpy as np

plt.subplot(2,1,1)
k = 500
x = np.random.rand(k)
y = np.random.rand(k)
size = np.random.rand(k) * 50 # 生成每个点的大小
colour = np.arctan2(x, y) # 生成每个点的颜色
plt.scatter(x, y, s=size, c=colour)
plt.colorbar() # 添加颜色栏

N = 20
# 参数c表示点的颜色,s是点的大小,alpha是透明度

plt.subplot(2,3,4)
plt.scatter(np.random.rand(N) * 100,
            np.random.rand(N) * 100,
            c="r", s=100, alpha=0.5)    # 红色

plt.subplot(2,3,5)
plt.scatter(np.random.rand(N) * 100,
            np.random.rand(N) * 100,
            c="g", s=200, alpha=0.5)    # 绿色

plt.subplot(2,3,6)
plt.scatter(np.random.rand(N) * 100,
            np.random.rand(N) * 100,
            c="b", s=300, alpha=0.5)    # 蓝色

plt.show()

代码解析:

1、这幅图包含三组数据,每组数据都包含了20个随机坐标的位置

2、参数c表示点的颜色,s是点的大小,alpha是透明度

3、plt.colorbar()添加右边的颜色栏

运行结果:

Python 绘图库 Matplotlib 入门代码实例

饼状图——pie

先上代码:

import matplotlib.pyplot as plt
import numpy as np

labels = ["linuxidc", "Ubuntu", "Fedora", "CentOS", "Debian", "SUSE", "linux"]

data = np.random.rand(7) * 100  # 生成7组随机数

# labels指定标签,autopct指定数值的精度
plt.pie(data, labels=labels, autopct="%1.1f%%")
plt.axis("equal")  # 设置了坐标大小一致
plt.legend()    # 指明要绘制的图例

plt.show()

代码解析:

1、data是一个包含7个数据的随机数值

2、图中的标签通过labels来指定

3、autopct指定了数值的精度格式

4、plt.axis('equal')设置了坐标轴大小一致

5、plt.legend()指明要绘制图例(见下图的右上角)

运行结果:

Python 绘图库 Matplotlib 入门代码实例

 

柱形图——bar

先上代码:

import matplotlib.pyplot as plt
import numpy as np

N = 7

x = np.arange(N)

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

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