数据可视化工具matplotlit的使用

python数据可视化工具matplotlib各个画图工具使用说明。

1 线形图

直接调用plot()函数绘制

importmatplotlib.pyplot as plt             # matplotlib包,可视化数据

importnumpy as np                       # numpy包,各类数学函数包

#获取数据集,范围是从-1到1,之间的50个

x= np.linspace(0,10,500)

#绘制的函数

y= 2*x + 1

#绘制图像

plt.plot(x,y)

plt.show()


图1-1 普通图像绘制


2 Figure

2.1 Figure特点

将函数图像画在Figure窗体中,需要注意的是:

f1 = plt.figure(num = 1)

……

f2 = plt.figure(num=2)

……

在f1和f2窗体之间的对函数图像的设置都是针对f1上的。f2后面的代码在遇到下一个figure之前都是作用在f2上的。

2.2 关键代码

#第一个figure

#在这个figure声明之后,下一个figure声明之前的代码都是在当前figure上的操作

#num = 1 设置的是figure窗体的序号

plt.figure(num= 1)

plt.plot(x,y1,color= 'red')

#将两个图像在同一个figure中画

plt.plot(x,y2,linestyle='--')

#第二个figure

#figuresize=(10*14) 设置的是figure的长高

plt.figure(num= 2,figsize=(10,14))

#linestyle='--' 设置绘制的线为虚线

plt.plot(x,y2,linestyle='--')


图2-1 figure效果

3 坐标轴设置

3.1 坐标轴设置的基本步骤

(1)     获取figure边框的对象

(2)     将上、右的边框隐藏

(3)     设置x轴为底边框,y轴为左边框

(4)     设置x轴,y轴的位置,是通过设置底边框,左边框的位置设置。设置x、y轴的位置,就是设置x轴的起点在y轴上的位置,设置y轴的起点在x轴上的位置。

(5)     给x、y轴添加label标签

(6)     设置坐标轴的刻度

详细的步骤看代码。

3.2 关键代码

#设置坐标轴的取值范围

plt.xlim(0,10)

plt.ylim(0,20)

#设置坐标轴的标签

plt.xlabel("x")

plt.ylabel("y") 

#设置X轴的刻度

new_xticks= np.linspace(0,10,10)     # 范围是-1~2,取5个值

new_yticks= np.linspace(0,20,5)

plt.xticks(new_xticks)

plt.yticks(new_yticks) 

#设置Y轴刻度标签

plt.yticks([5,10,15,20],

           [r'$normal$',r'$good$',r'$very\good$',r'$perfect$'])



图3-1 坐标轴位置设置效果

4 Legend

4.1 Legend简介

Legend是在figure窗体中显示一个小的窗体,标注函数图像的相关信息。可以设置其位置,显示的内容,以及函数图像在其内的标签。如图4-1中红色框框所示。

4.2 关键代码

#handles=[l1,l2,]表示要显示在框中的线,labels=['a','b']表示在框中各个线的标签,loc = 'best'设置框的位置,best,会自动将框放在数据最少的位置

#plt.legend(handles=[l1,l2,],labels=['a','b',],loc = 'best')

plt.legend(loc= 'best')

                                                                                图4-1 Legend 

5 Annotion

5.1 函数图像标注

给函数图像的某一点添加标注,比如表明某一点的函数值,或者对某点进行解释说明。有两种方式:一个是调用annotion() 函数绘制,一个是调用text()绘制。

5.2. 关键代码

(1)      调用annotion

plt.annotate(r'$2x+5=%s$'%y0,xy= (x0,y0),xycoords = 'data',xytext = (+30,-30),textcoords = 'offsetpoints',fontsize = 16,

arrowprops= dict(arrowstyle = '->',connectionstyle = "arc3,rad = .2"))

             ‘’’

r'$2x+5=%s$'%y0:设置标注内容  

xy =(x0,y0):设置标注点   

xycoords ='data' 参考坐标   

xytext =(+30,-30):标注文本的位置

‘’’

(2)      调用text

plt.text(-8,8,r'$this\is\ the\ some\ text.\mu\ \sigma_i\ \alpha_t$',fontdict={'size':16,'color':'r'})


图5-1 annotion效果

6 Tick

6.1 设置坐标轴刻度的背景

在函数图像复杂的情况下,坐标轴刻度可能会被遮盖,这时可以通过设置刻度的背景颜色来凸显出刻度,将用到bbbox()函数。

6.2 关键代码

for label in ax.get_xticklabels() + ax.get_yticklabels():

   label.set_fontsize(12)

    # alpha = 0.7 设置透明度edgecolor = 'None':边框 facecolor = 'white':背景

   label.set_bbox(dict(facecolor = 'white',edgecolor = 'None',alpha =0.7,zorder = 2))


图6-1 Tick效果

7 Scatter

7.1 Scatter简介

用来绘制散点图,可以绘制直线、曲线的散点图。实际效果看图7-1。

7.2 关键代码

importmatplotlib.pyplot as plt

import  numpy as np

#1.获取数据

#用随机数生成一个呈正太分布的二维数据组,平均值是0,方差是1

n= 1024

X= np.random.normal(0,1,n)     # 所有x 的值

Y= np.random.normal(0,1,n)

#2.绘制散点图

T= np.arctan2(Y,X)              # 获取颜色数值

plt.scatter(X,Y,s=75,c= T,alpha=0.5)

#3.设置取值范围和隐藏坐标轴刻度

plt.xlim(-1.5,1.5)

plt.ylim(-1.5,1.5)

plt.xticks(())                  # 隐藏x轴

plt.yticks(())

plt.show()


图7-1 scatter效果图

8 Bar

8.1 Bar简介

用来绘制柱状图,参数有:X,Y的值、背景颜色、边框颜色等等。可以对每个柱状设置标签等等。

8.2 关键代码

import matplotlib.pyplot as plt

import  numpy as np

 

# 1.获取数值

n = 12              # 柱状数量

X = np.arange(n)

Y1 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)  # 均匀分布的数据

Y2 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)

 

# 2.绘图

plt.bar(X,+Y1,facecolor = '#9999ff',edgecolor = 'white')

plt.bar(X,-Y2,facecolor = '#ff9999',edgecolor = 'white')

 

# 3.设置标注

for x,y in zip(X,Y1):

   plt.text(x, y + 0.02, '%.2f'%y, ha = 'center', va = 'bottom')

for x,y in zip(X,Y2):

    plt.text(x, -y - 0.02,'%.2f'%y, ha = 'center', va = 'top')

 

# 4.设置取值范围,隐藏坐标轴

plt.xticks(())

plt.yticks(())

plt.xlim(-.5, n)

plt.ylim(-1.25, 1.25)

plt.show()


图8-1 Bar效果图

9 线性图、Figure、坐标轴设置的完整例子

import matplotlib.pyplot as plt

import numpy as np

# 获取数据集,范围是从-1到1,之间的50个

x = np.linspace(-10 ,10 ,500)

# 绘制的函数

y1 = 2* x + 1

y2 = x**2 - 10

plt.figure(num=1)       # num = 1 设置的是figure窗体的序号

# ====================设置坐标轴==========================

# 设置坐标轴的取值范围

plt.xlim(-10,10)

plt.ylim(-20,20)

#设置坐标轴的标签

plt.xlabel("x")

plt.ylabel("y")

 

# 设置X轴的刻度

new_xticks = np.linspace(-10,10,9)     # 范围是-1~2,取5个值

new_yticks = np.linspace(-20,20,9)

plt.xticks(new_xticks)

plt.yticks(new_yticks)

 

# 设置显示的坐标轴

ax = plt.gca()     # 获取边框对象,gca: getcurrent axis

ax.spines['right'].set_color('none')        # 设置右边和顶部的坐标为空白,只留下左边和底部的

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

 

# 调整坐标轴的位置

# 设置x坐标刻度数组或名称的位置,所有位置有:top,bottom,both,default,none

ax.xaxis.set_ticks_position('bottom')           # 设置x轴为底部的边框

# 设置x轴坐标的位置,位置所有属性:outward,axes,data

ax.spines['bottom'].set_position(('data',0))    # ax.spines['bottom'] 是指 x轴

ax.yaxis.set_ticks_position('left')             # 设置y轴为左侧的边框

# 设置y坐标刻度的位置,所有位置:left,right,both,default,none

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

# ====================设置坐标轴==========================

# 绘制图像

l1, = plt.plot(x, y1, color='red',label = 'line')

l2, = plt.plot(x, y2, linestyle='--',label ='square line')

#================= 绘制legend 框===========================

# handles=[l1,l2,]表示要显示在框中的线,labels=['a','b']表示在框中各个线的标签,loc = 'best'设置框的位置,best,会自动将框放在数据最少的位置

#plt.legend(handles=[l1,l2,],labels=['a','b',],loc = 'best')

plt.legend(loc = 'best')

#================= 绘制legend 框===========================

# 最后show,才能绘制图像

plt.show()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值