python中的Matplotlib

Matplotlib的安装

我们可以通过Anaconda中的命令或者“pip install matplotlib"语句来安装Matplotlib,在安装完成后通过运行“import matplotlib"语句,来检验安装是否成功。如果没有输出报错,则说明安装没有问题,可以正常使用。在实际应用中,我们同样习惯于将“import matplotlib”写成“import matplotib.pyplot as plt”。

创建图

Matplotlib本身定位于数据的可视化展现,所以集成了很多数据可视化方法。下面通过实例来了解在Matplotlib中进行数据可视化的常用方法。

1、线性图

线型图通过线条的形式对数据进行展示,可以通过它很方便地看出数据的趋势和波动性

import matplotlib.pyplot as plt
import numpy as np

np. random. seed (42)    #设置随机种子,以方便之后的结果复现
x = np. random. randn(30)   #生成30个随机参数并复制给变量x
plt.plot(x, "r--o")        #将该30个随机参数以点的方式绘制出来并用线条进行连接,参数r--o用于在线型图中标记每个参数点的使用的形状、连接参数点使用的线条颜色和线性
plt.show()

结果:

线型图的横轴和纵轴也是有区别的,纵轴生成的是30个随机数的值,横轴生成的是这30个点的索引值,同样是30个。

2、线条颜色、标记形状和线型

在绘制线型图时,我们通过标记每个参数点使用的形状、连接参数点使用的线条颜色和线型,可以很好地区分不同的数据,这样做可以使我们想要显示的数据更清晰,还能突出重要的数据。

用于设置线型图中线条颜色的常用参数如下。

(1)“b":指定绘制的线条颜色为蓝色。

(2)“g":指定绘制的线条颜色为绿色。

(3)“r":指定绘制的线条颜色为红色。

(4)“c":指定绘制的线条颜色为蓝绿色。

(5)“m": 指定绘制的线条颜色为洋红色。

(6)“y":指定绘制的线条颜色为黄色。

(7)“k":指定绘制的线条颜色为黑色。

(8)“w":指定绘制的线条颜色为白色。

用于设置线型图中标记参数点形状的常用参数如下。

(1)“o”: 指定标记实际点使用的形状为圆形。

(2)“*”:指定标记实际点使用“*”符号。

(3)“+”:指定标记实际点使用“+”符号。

(4)“x":指定标记实际点使用“x"符号。

用于设置线型图中连接参数点线条形状的常用参数如下。

(1)“-”: 指定线条形状为实线。

(2)"--":指定线条形状为虚线。

(3)“-.":指定线条形状为点实线。

(4)“”:指定线条形状为点线。

下面来看一个使用不同的线条颜色、形状和标记参数点形状的实例。

import matplotlib.pyplot as plt
import numpy as np

a = np.random. randn (30)

b = np.random. randn (30)

c = np. random. randn(30)

d = np. random. randn (30)

plt.plot(a, "r--o", b, "b-*", c, "g-.+", d, "m:x")

plt.show()

结果:

3、标签和图例

为了让我们绘制的图像更易理解,我们可以增加一些绘制图像的说明,一般是添加图像的轴标签和图例,如下所示就是一个添加图例和轴标签的实例。

import matplotlib.pyplot as plt
import numpy as np

np. random.seed(42)
x = np.random. randn(30)
y = np.random. randn(30)
plt.title("Example")
plt.xlabel("X")        #添加标签的显示代码
plt.ylabel("Y")
X, = plt.plot(x,"r--o")
Y, = plt.plot(y, "b-*")
plt.legend([X, Y], ["X", "Y"])    #第1个列表参数是在图中实际使用的标记和线形,第2个列表参数是对应图例的文字描述
plt.show()

结果:

4、子图

若我们需要将多个图像同时在不同的位置显示,则需要用到子图(Subplot) 的功能。

import matplotlib.pyplot as plt
import numpy as np


a = np. random. randn(30)
b = np. random. randn(30)
c = np. random. randn(30)
d = np.random. randn(30)

fig = plt.figure()   #定义一个实例,通过fig.add_subplot()向fig实例中添加我们需要的子图

ax1 = fig.add_subplot(2,2,1)  #把整块图划分成了两行两列,一共4张子图,最后1个数字表示具体使用哪一张子图进行绘制
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)

A, = ax1.plot(a, "r--o")
ax1.legend([A], ["A"])      #第1个列表参数是在图中实际使用的标记和线形,第2个列表参数是对应图例的文字描述

B, = ax2.plot(b, "b-*")
ax2.legend([B], ["B"])

C, = ax3.plot(c, "g-.+")
ax3.legend([C], ["C"])

D, = ax4.plot(d, "m:x")
ax4. legend([D], ["D"])

plt.show()

结果:

5、散点图

如果我们获取的是一些散点数据,则可以通过绘制散点图(Scatter) 更清晰地展示所有数据的分布和布局。
 

import matplotlib.pyplot as plt
import numpy as np

np. random. seed(42)    #设置随机种子,以方便之后的结果复现

x = np.random.randn(30)
y = np.random.randn(30)

plt.scatter(x,y,c="g",marker="o", label="(X,Y)")
plt.title("Example")

plt.xlabel("X")

plt.ylabel("Y")

plt.legend(loc=1)

plt.show()

结果:


绘制散点图的核心代码是plescatter(xy. c="g", marker="o". label-="(X,Y"),其中有三个我们需要特别留意的参数,如下所述。

(1)“c":指定散点图中绘制的参数点使用哪种颜色,可设置的颜色参数可参考之前绘制线型图时对线条颜色选择的参数范围,这里使用“g"表示设置为绿色。

(2)“marker":指定散点图中绘制的参数点使用哪种形状,和之前线型图中的设置一样,这里使用“o”表示设置为圆形。

(3)“label": 指定在散点图中绘制的参数点使用的图例,与线型图中的图例不同。

我们还可以通过plt.legend(loc= 1)对图例的位置进行强制设定,对图例位置的参数设置一般有以下几种。

(1)“loc=0":图例使用最好的位置。

(2)“loc=1”:强制图例使用图中右上角的位置。

(3)“loc=2":强制图例使用图中左上角的位置。

(4)“loc=3";强制图例使用图中左下角的位置。

(5)“loc=4”:强制图例使用图中右上角的位置。
 

6、直方图

直方图(Histogram) 又称质量分布图,是-种统计报告图,通过使用系列高度不等的纵向条纹或直方表示数据分布的情况,一般用横轴表示数据类型,用纵轴表示分布情况。

import numpy as np
import matplotlib.pyplot as plt

np.random. seed(42)

x = np.random. randn(1000)

plt.hist(x,bins=20,color="r")  #bins用于指定我们绘制的直方图条纹的数量

plt.title("Example")

plt.xlabel("X")

plt.ylabel("Y")

plt. show()

结果:

7、饼图

饼图用于显示一个数据系列,我们可以将一个数据系列理解为一类数据,而每个数据系列都应当拥有自己唯一的颜色。 在同一个饼图中可以绘制多个系列的数据,并根据每个系列的数据量的不同来分配它们在饼图中的占比。

import matplotlib.pyplot as plt

labels = ['Dos', 'Cats', 'Birds']
sizes = [15, 50,35]

plt.pie(sizes, explode=(0, 0, 0.1),labels=labels, autopct='81.1f8号',startangle=90)

plt.axis('equal')

plt.show()

结果:

绘制饼图的核心代码为plt.pie(sizes, explode=(0, 0, 0.1), labels=labels, autopct=*%1.1f%%', startangle=60), 其中sizes= [15, 50, 35]的三个数字确定了每部分数据系列在整个圆形中的占比; explode 定义每部分数据系列之间的间隔,如果设置两个0和一个0.1,就能突出第3部分; autopct 其实就是将sizes 中的数据以所定义的浮点精度进行显示:startangle是绘制第1块饼图时该饼图与X轴正方向的夹角度数,这里设置为90,默认为0; plt.axis('equal')是必不可少的, 用于使X轴和Y轴的刻度保持一致,只有这样,最后得到饼图才是圆形的。


 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐