Matplotlib绘图基础详细教程

Matplotlib数据可视化

文章目录

plt是最常用的接口

1. 画图的基本步骤

1.导入模块

import matplotlib as mpl
import matplotlib.pyplot as plt

2.创建画板,然后对画板进行调整
3.定义数据
4.绘制图形(包含坐标轴的设置,数据的导入,线条的样式,颜色,还有标题,图例,等等)
5.plt.show()
.
.
.

1.1一步一步看

1.1.1(一)第一步:创建并定义一个”画板”(你将要在你定义的画板上面进行画图操作).

fig=plt.figure()

在plt.figure()括号里面还有一些参数
例如:

huaban=plt.figure(figsize=(6,10),facecolor='b',dpi=500)

1.1.2(二).第二步:定义你的x,y数据

这里我们使用numpy库函数来制造一些数据
所以我们还得导入numpy函数

import numpy as np

x=np.linspace(-5,5,11)
y=[1,6,3,-3,6,8,3,6,9,1,-5]

1.1.3(三).第三步:设置x,y轴的大小,刻度,…


p1=fig.add_subplot(111)

p1.axis([-5,5,-10,10])

plt.xticks(x)
plt.yticks(y)

plt.xlim(-5,5)
plt.ylim(-10,10)

1.1.4(四).绘制图像,导入x,y数据,设置线条样式,颜色,粗细,添加图例,标题…


p1.plot(x,y,marker='o',ms=5,lw=2,ls='--',label='band')

p1.legend(loc='best')

plt.title('NUM',fontsize=24)
plt.xlabel('Value',fontsize=14)
plt.ylabel('ARG',fontsize=14)

现在基本上就设置好了,因为我是在脚本中画图,所以我需要在代码的最后添加一个:plt.show(),它会自动启用一个事件循环,并找到所有当前可用的图形对象,然后打开一个交互式窗口来显示图形.

1.1.5上述的完整的代码(有一些细节的添加):

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-5,5,11)
y=[1,6,3,-3,6,8,3,6,9,1,-5]

huaban=plt.figure(figsize=(6,10))

p1=huaban.add_subplot(111)

p1.axis([-5,5,-10,10])

plt.xticks(x)
plt.yticks(y)

p1.spines['right'].set_color('none')

p1.spines['top'].set_color('none')

p1.spines['bottom'].set_position(('data',0))
p1.spines['left'].set_position(('data',0))

p1.plot(x,y,marker='^',ms=5,lw=2,ls='--',label='band')
p1.legend(loc='upper left')

plt.title('NUM',fontsize=24)
plt.xlabel('Value',fontsize=14)
plt.ylabel('ARG',fontsize=14)

for i in range(len(x)):
    x1=[x[i],x[i]]
    y1=[0,y[i]]
    plt.plot(x1,y1,'r-.')
for i in range(len(x)):
    x2=[0,x[i]]
    y2=[y[i],y[i]]
    p1.plot(x2,y2,'r-.')

for i in range(len(x)):
    p1.text(x[i],y[i],(x[i],y[i]),c='green')

plt.grid(c='b',ls='--')
plt.show()

输出结果:

Matplotlib绘图基础详细教程

3.散点图

散点图其实大部分语法和上述差不多,只需要将折线图中的plt.polt()改为plt.scatter()

这里我们只需要画一幅图来做个例子,就省去创建画板的步骤,创建画板的步骤在后面才会有用.

import numpy as np
import matplotlib.pyplot as plt

N=20
x=np.random.rand(N)
y=np.random.rand(N)
x1=np.random.rand(N)
y1=np.random.rand(N)

plt.scatter(x,y,s=100,c='red',marker='^',label='red')
plt.legend(loc='best')

plt.scatter(x1,y1,s=50,c='blue',marker='o',label='blue')
plt.legend(loc='upper left')

plt.xlabel('x')
plt.ylabel('y')
plt.title('picture')
plt.show()

.
输出结果:

Matplotlib绘图基础详细教程

4.条形图的绘制

使用plt.bar()进行绘制

import numpy as np
import matplotlib.pyplot as plt

x=[1,2,3,4,5]
y=np.random.rand(5)
plt.figure(figsize=(8,4))
plt.bar(x,y)
x_t=list(range(len(x)))
plt.xticks(x,x_t)
plt.show()

输出结果:

Matplotlib绘图基础详细教程

5.四幅子图的绘制

画子图就需要创建画板,然后对画板进行分割,然后在分出来的位置进行绘制不同的图像.
重点是这里:

p1 = huaban.add_subplot(221)
p2=huaban.add_subplot(222)
p3=huaban.add_subplot(223)
p4=huaban.add_subplot(224)

import numpy as np
import matplotlib.pyplot as plt

x=range(-10,10,1)
y=np.random.rand(20)
huaban=plt.figure(facecolor='pink',figsize=(8,8),dpi=100)

p1 = huaban.add_subplot(221)
p1.plot(x,y,label="sinx",marker='o')
plt.legend(loc='best')
plt.grid(c='r',linestyle=':')

p2=huaban.add_subplot(222)
x1=np.linspace(-np.pi*2,np.pi*2,1000)
y1=np.sin(x1)
p2.plot(x1,y1,label="sinx",color='blue')
plt.legend(loc='best')
plt.grid(c='b',linestyle='--')

p3=huaban.add_subplot(223)
x2=np.random.rand(10)
y2=np.random.rand(10)
x3=np.random.rand(10)
y3=np.random.rand(10)
p3.scatter(x2,y2,c='red',marker='o',label="散点图")
p3.scatter(x3,y3,c='red',marker='^',label="散1")

p4=huaban.add_subplot(2,2,4)
p4.plot(x1,np.cos(x1),label="cosx")
plt.legend('best')
plt.grid(c='c',linestyle=':')
plt.show()

输出结果:

Matplotlib绘图基础详细教程

6.饼状图的绘制

import matplotlib.pyplot as plt
x=[35,25,25,15]
colors=["#14615E", "#F46C40", "#3E95C0", "#A17D3B"]
name=['A','B','C','D']
label=['35.00%','25.00%','25.00%','15.00%']
huaban=plt.figure()
p1=huaban.add_subplot(111)

p1.pie(x,labels=name,colors=colors,autopct='%1.2f%%',explode = (0, 0.2, 0, 0))
plt.axis('equal')
plt.show()

输出结果:

Matplotlib绘图基础详细教程

7.热力图的绘制

import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(4,4))

plt.subplot(211)
plt.imshow(np.random.random((10, 10)), cmap="hot")

plt.subplot(212)
plt.imshow(np.random.random((5, 5)), cmap="winter")

plt.subplots_adjust(bottom=0.09, right=0.5, top=0.9)
cax = plt.axes([0.75, 0.1, 0.065, 0.8])
plt.colorbar(cax=cax)

plt.show()

输出结果:

Matplotlib绘图基础详细教程

Original: https://blog.csdn.net/m0_62844645/article/details/122869174
Author: 飞行模式、
Title: Matplotlib绘图基础详细教程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/731956/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球