数据分析——Python可视化库

Python可视化库

一、numpy库

特征:

  • numpy库中最核心的部分是ndarray 对象。它封装了同构数据类型的n维数组,

  • 它的功能将通过演示代码的形式呈现。

  • 在数组中所有元素的类型必须一致,且在内存中占有相同的大小。

  • 数组元素可以使用索引来描述,索引序号从0开始。

  • numpy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此

    类推。在numpy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴

    的数量。

二、基于Matplotlib的数据可视化(MATLAB+Plot+Library)

1.matplotlib.pyplot函数库简介

相关函数

函数说明
figure()创建一个新的绘图窗口。
figtext()为 figure 添加文字
axes()为当前 figure 添加一个坐标轴
plot()绘图函数
polar()绘制极坐标图
axis()获取或设置轴属性的边界方法(坐标的取值范围)
clf清除当前 figure 窗口
cla清除当前 axes 窗口
close关闭当前 figure 窗口
subplot一个图中包含多个 axes
text()在轴上添加文字
title()设置当前 axes 标题
xlabel/ylabel设置当前 X 轴或 Y 轴的标签
hist()绘制直方图
hist2d()绘制二维在直方图
hold设置当前图窗状态;off 或者 on
imread()读取一个图像,从图形文件中提取数组
legend()为当前 axes 放置标签
pie()绘制饼状图
scatter()做一个 X 和 Y 的散点图,其中 X 和 Y 是相同长度的序列对象
stackplot()绘制一个堆叠面积图
acorr()绘制 X 的自相关函数
annotate()用箭头在指定的数据点创建一个注释或一段文本
bar()绘制垂直条形图
barh()绘制横向条形图
barbs()绘制一个倒钩的二维场
1)plt.figure()

说明:matplotlib 所绘制的图形位于 figure 对象中,plt.figure()函数的主要作用是构建一张空白的画布,并可以选择是否将整个画布划分为多个区域,方便在同一幅图片上绘制多个图形。

参数说明
num设置图像编号
figsize设置图像的宽度和高度,单位为英寸
facecolor设置图像背景颜色
dpi设置绘图对象的分辨率
edgecolor设置图像边框颜色

在创建了图像区域之后,再用函数plt.show()显示

# 创建一个大小为6*4的空白绘图区域并显示
plt.figure(figsize=(6,4))
plt.show()
2)plt.subplot()

说明:subplot()用于在全局绘图区域中创建子绘图区域。

参数说明
nrowssubplot的行数
ncolssubplot的列数
sharexx轴刻度
shareyy轴刻度

使用subplot可以规划figure划分为n个子图,但每条subplot命令只会创建一个子图

# 用subplot划分子区域,将全局划分为 4*4 的区域,其中横向为 4,纵向也为 4,并在第 2 个位置(靠左上方)生成了一个坐标系
import matplotlib.pyplot as plt
plt.subplot(442)
plt.show()

可以通过 sharex 和 sharey 表明子图分别拥有相同的 x 轴和 y 轴

fig , axes = plt.subplots(2,3)  # 'fig'是包含整个图形的Figure对象,'axes'是一个包含6个子图Axes对象的2*3的Numpy数组
plt.show()

注:可以通过‘axes’数组来访问每个子图,例如‘axes[0,0]’表示第一行第一列的子图。

fig,axes = plt.subplots(2,2,sharex = True,sharey = True)
plt.show()

例:

# 绘制直方图
import matplotlib.pyplot as plt
import numpy as np
fig,axes = plt.subplots(2,2,sharex = True,sharey = True)
for i in range(2):
	for j in range(2):
		axes[i,j].hist(np.random.randn(500),bins =50,color='k',alpha= 0.5)
# 在每个子图中绘制直方图。这里使用了NumPy的random.randn函数生成500个服从标准正态分布的随机数,然后使用hist函数绘制直方图。
# 参数 bins=50 指定了直方图的箱数,color='k' 指定了直方图的颜色为黑色,alpha=0.5 设置了直方图的透明度。
axes[i,j].hist(np.random.randn(500),bins =50,color='k',alpha= 0.5)  
3)plt.axes()

​ plt.axes()创建一个坐标系风格的子绘图区域,默认创建一个subplot(111) 坐标系。语法格式plt.axes(rect,axisbg= ),其中参数rect=[left,bottom,width,height]中4个变量的范围都是[0,1],表示坐标系在全局绘图区域的位置关系,axisbg指定坐标背景色(matplotlib 2.0后版本中不推荐

使用axisbg,可改为facecolor)。

import matplotlib.pyplot as plt
plt.axes([0.1,0.1,0.7,0.3],facecolor='y') 
plt.show()
4)plt.subplots_adjust()

​ plt.subplots_adjust()用于调整子绘图区域的布局。常见语法如下:

plt.subplots_adjust(left=,bottom=,right=,top=,wspace=,hspace=)
参数说明
left画布中子图左边离y轴距离
bottom画布中子图下边离x轴距离
right画布中子图右边离y轴距离
top画布中子图上边离x轴距离
wspace,hspace子图之间的距离
import matplotlib.pyplot as plt
import numpy as np
fig,axes = plt.subplots(2,2,sharex = True,sharey = True)
for i in range(2):
    for j in range(2):
        axes[i,j].hist(np.random.randn(500),bins =50,color='k',alpha= 0.5)
plt.subplots_adjust(left=0.2,bottom=0.1,right=0.8,top=0.8, hspace=0.5,wspace=0)

2.matplotlib.pyplot相关函数简介

​ 在matplotlib.pyplot 库中有plt子库,该子库提供了7个用于读取和显示的函数, 17个用于绘制基础图表的函数,3个区域填充函数,9个坐标轴设置函数以及11个标签与文本设置函数。(以下表格中的函数参数没有列出)

plt库中的读取和显示函数
函数名称函数作用函数名称函数作用
plt.legend()在绘图区域放置绘图标签plt.imsave()保存数组为图像文件
plt.show()显示绘制的图像plt.savefig()设置图像保存格式
plt.matshow()在窗口中显示数组矩阵plt.imread()从图像文件中读取数组
plt.imshow()在axes上显示图像
plt库中的基础图表函数
函数名称函数作用
plt.plot(x,y)根据(x,y)数组绘制直线、曲线
plt.boxplot()绘制箱型图
plt.bar()绘制条形图/柱状图
plt.barh()绘制横向条形图
plt.polar()绘制极坐标图
plt.pie()绘制饼图
plt.psd()绘制功率谱密度图
plt.specgram()绘制谱图
plt.cohere(x,y)绘制x-y的相关性函数
plt.scatter()绘制散点图
plt.step()绘制布阶图
plt.hist()绘制直方图
plt.contour()绘制等值线
plt.clines()绘制垂直线
plt.stem()绘制曲线中每个点到水平轴线的垂线
plt.plot_date()绘制数据日期
plt.plotfile绘制数据后写入文件
坐标轴设置函数
函数名称函数作用
plt.axis()获取设置轴属性
plt.xlim()设置X轴的取值范围
plt.ylim()设置Y轴的取值范围
plt.xscale()设置X轴缩放
plt.yscale()设置Y轴缩放
plt.legend()指定当前图形的图例大小、位置、标签
plt.autoscale()自动缩放轴视图
plt.text()为axis图添加注释
plt.thetagrids()设置极坐标网格
plt.grid()打开或关闭极坐标
plt.xticks()指定X轴刻度的数目与取值
plt.yticks()指定Y轴刻度的数目与取值
区域填充函数
函数名称函数作用
fill(x,y,c,color)填充多边形
fill_between(x,y1,y2,where,color)填充曲线围成的多边形
fill_betweenx(y,x1,x2,where,hold)填充水平线之间的区域
plt库中的标签与文本设置函数
函数名称函数作用
plt.figlegend()为全局绘图区域放置图注
plt.xlabel()设置当前x轴的文字
plt.ylabel()设置当前y轴的文字
plt.xicks()设置当前x轴刻度位置的文字和值
plt.yticks()设置当前y轴刻度位置的文字和值
plt.clabel()设置等高线数据
plt.get_figlabels()返回当前绘图区域的标签列表
plt.figtext()为全局绘图区域添加文本信息
plt.title()设置标题
plt.suptitle()设置总标题
plt.annotate()为文本添加注释

3.添加画布内容

​ 在画布上绘制图形,需要设置绘图的一些属性,如标题、轴标签等。其中添加标题、添加坐标轴名称、绘制图形等步骤是并列的,没有先后顺序,但添加图例必须要在绘制图形之后

例:绘图时设置坐标轴属性

import numpy as np 
import matplotlib.pyplot as plt 
%matplotlib inline 
data=np.arange(0,1,0.01) 
plt.title('my lines example') 
plt.xlabel('X') 
plt.ylabel('Y') 
plt.xlim(0,1) 
plt.ylim(0,1) 
plt.xticks([0,0.2,0.4,0.6,0.8,1]) 
plt.yticks([0,0.2,0.4,0.6,0.8,1]) 
plt.plot(data,data**2) 
plt.plot(data,data**3) 
plt.legend(['y=x^2','y=x^3']) 
plt.show()

例:包含子图绘制的基础语法

import numpy as np 
import matplotlib.pyplot as plt 
%matplotlib inline
data=np.arange(0,np.pi*2,0.01)
fig1=plt.figure(figsize=(9,7),dpi=90) 
#确定画布大小
#绘制第一幅子图
ax1=fig1.add_subplot(1,2,1)
plt.title('lines example')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(0,1)
plt.ylim(0,1)
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(data,data**2)
plt.plot(data,data**3)
plt.legend(['y=x^2','y=x^3'])
#绘制第二幅子图
ax1=fig1.add_subplot(1,2,2)
plt.title('sin-cos')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(0,np.pi*2)
plt.ylim(-1,1)
plt.xticks([0,np.pi/2,np.pi,np.pi*3/2,np.pi*2])
plt.yticks([-1,-0.5,0,0.5,1])
plt.plot(data,np.sin(data))
plt.plot(data,np.cos(data))
plt.legend(['sin','cos'])
plt.show()

关于 plt.legend()的常用设置示例:

plt.legend(loc = 'best',frameon = False) #去掉图例边框,推荐使用
plt.legend(loc = 'best',edgecolor = 'blue') #设置图例边框颜色
plt.legend(loc = 'best',facecolor = 'blue') #设置图例背景颜色,若无边框,参数无效

4.绘图的保存

​ 可以通过 plt.savafig()保存绘制的图片。可以指定图片的分辨率、边缘的颜色等参数。

参数说明
fname包含文件路径或 Python 文件型对象的字符串。图片格式是从文件扩展名中推断出来的(例如 pdf 格式的.pdf)
dpi设置每英寸点数的分辨率,默认为 100
facecolor ,edgecolor子图之外的图形背景颜色,默认是’w’(白色)
format文件格式(‘png’,’pdf’,’svg’,’ps’等)
bbox_inches要保存的图片范围,如果设置为‘tight‘则去除图片周围的空白
transparenttransparent=True表示保存的图形文件将具有透明背景。如果设置为False,则背景将是不透明的。

例:

fig.savefig(save_path, format='png', transparent=True, dpi=300, pad_inches = 0)

5.设置动态rc参数

​ Matplotlib 配置了配色方案和默认设置,主要用来准备用于发布的图片。有两种方式可以设置参数,即全局参数定制rc 设置方法

# 查看matplotlib的rc参数
import matplotlib as plt 
print(plt.rc_params())
5.1全局参数定制

​ Matplotlib 的全局参数可以通过编辑其配置文件设置

# 显示当前用户的配置文件目录
import matplotlib as plt 
print(plt.matplotlib_fname())
C:\ProgramData\anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc

​ 查找到当前用户的配置文件目录,然后用编辑器打开,修改 matplotlibrc 文件,即可修改配置参数。

5.2 rc参数设置

​ 使用 python 修改 rc 参数可以自定义图形的各种默认属性,被称为 rc 配置或rc 参数。

​ 几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等。

线条的常用rc参数名称、说明与取值
rc参数名称解释取值
lines.linewidth线条宽度取0-10之间的数值,默认为1.5。
lines.linestyle线条样式可取“-”、“–”、“-.”、“:”四种。默认为“-”。
lines.marker线条上点的形状可取“o”、 “D”、 “h” 、“.” 、“,”、“S”等20种,默认为None。
lines.markersize点的大小取0-10之间的数值,默认为1。
线条样式取值
linestyle 取值意义
-实线
长虚线
-.点线
:短虚线
marker参数取值
marker 取值说明
‘o’圆圈
‘D’菱形
‘h’六边形 1
‘H’六边形 2
‘-’水平线
‘8’八边形
‘.’
‘s’正方形
‘*’星号
‘d’小菱形
‘v’一角朝下的三角形
‘<’一角朝左的三角形
‘p’五边形
‘,’像素
‘+’加号
‘>’一角朝右的三角形
‘^’一角朝上的三角形
‘\’竖线
‘x’X
‘None’

注意!!!由于默认的 pyplot 字体并不支持中文字符的显示,因此需要通过设置 font.sans-serif 参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改axes.unicode_minus 参数

plt.rcParams[‘font.family’]=[‘SimHei’] #用来显示中文标签
plt.rcParams[‘axes.unicode_minus’]=False #用来正常显示负号

例:rc参数设置示例

import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots()
#配置中文显示
plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
def f(t):
    return np.cos(2*np.pi*t)
x1 = np.arange(0.0,4.0,0.5)
x2 = np.arange(0.0,4.0,0.01)
plt.figure(1)
plt.subplot(2,2,1)
plt.plot(x1,f(x1),'bo',x2,f(x2),'k')
plt.title('子图 1')
plt.subplot(2,2,2)
plt.plot(np.cos(2*np.pi*x2),'r--')
plt.title('子图 2')
plt.show()

例:添加图例,添加每个图表时传递label参数

fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(np.random.randn(30).cumsum(),color='k',linestyle='dashed',marker='o',label='one')
ax.plot(np.random.randn(30).cumsum(),color='k',linestyle='dashed',marker='+',label='two')
ax.plot(np.random.randn(30).cumsum(),color='k',linestyle='dashed',marker='v',label='three')
#ax.set_xticks([0,25,50,75,100]) #设置刻度
#ax.set_xticklabels(['x1','x2','x3','x4','x5'],rotation=30,fontsize='small') #改变刻度
ax.legend(loc='best')

若使用 ax.set_xticks([0,25,50,75,100]) #设置刻度,则效果如下:

若使用 ax.set_xticklabels([‘x1’,‘x2’,‘x3’,‘x4’,‘x5’],rotation=30,fontsize=‘small’) #改变刻度,则效果如下(注意 x 轴标签)

其中 rotation 参数表示 x 坐标标签的旋转角度,fontsize 为字号,可以取值为’xx-small’,‘x-small’,‘small’,‘medium’,‘large’,‘x-large’,‘xx-large’,‘larger’,‘smaller’,‘None’

6.绘图填充

例:使用fill_between()填充曲线下面部分区域的填充

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,1,500)
y=np.sin(3*np.pi*x)*np.exp(-4*x)
fig,ax=plt.subplots()
plt.plot(x,y)
plt.fill_between(x, 0, y, facecolor='green', alpha=0.3)

​ 其中,第一个参数表示覆盖的区域,参数 x 表示整个 x 轴都覆盖;0 表示覆盖的下限;y 表示覆盖的上限是 y 这个曲线;facecolor 表示覆盖区域的颜色;alpha表示覆盖区域的透明度[0,1],其值越大,表示越不透明。

例:两条曲线之间的区域填充

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,1,500)
y1=np.sin(3*np.pi*x)*np.exp(-4*x)
y2 = y1 + 0.2
plt.plot(x, y1,'b')
plt.plot(x, y2, 'r')
plt.fill_between(x, y1, y2, facecolor='green', alpha=0.3) #两条曲线之间的区域填充
plt.show()

例:直接使用fill进行绘图的填充

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,1,500)
y=np.sin(3*np.pi*x)*np.exp(-4*x)
fig,ax=plt.subplots()
ax.fill(x,y)
plt.show()

7.文本注解

​ 绘图时有时需要在图表中加文本注解,这时可以通过 text 函数在指定的位置(x,y)加入文本注解。如在柱状图上加入文本数字,可以清楚地显示每个类别的数量。如 6 个城市 8 月份的日均最高气温。

例:绘制气温柱状图并标注

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['SimHei']
data = [25,30,32,34,34,23]
label = ['青海','兰州','北京','上海','广州','拉萨']
plt.xticks(range(len( data)),label)
plt.xlabel('城市')
plt.ylabel('温度')
plt.title('六城市 8 月份日均最高气温')
plt.bar(range(len( data)),data)
for x,y in zip(range(len(data)),data):
	plt.text(x,y,y,ha = 'center',va = 'bottom') #文本注解
plt.show()

8.matplotlib可视化

8.1 绘制折线图

​ 折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。

​ 绘制折线图使用的 plot()函数的基本格式:

matplotlib.pyplot.plot(*args,**kwargs)
参数说明
x,y接收 array。表示 x 轴和 y 轴对应的数据。无默认。
color接收特定 string。指定线条的颜色。默认为 None。
linestyle接收特定 string。指定线条类型。默认为“-”。
marker接收特定 string。表示绘制的点的类型。默认为 None。
alpha接收 0-1 的小数。表示点的透明度。默认为 None。
颜色缩写代表的颜色
b蓝色
g绿色
r红色
c青色
m品红
y黄色
k黑色
w白色

简单折线图

import numpy as np
import matplotlib.pyplot as plt
x1 = np.arange(0, 30)
plt.plot(x1,x1*2, 'b')
plt.show()

例:用matplotlib库绘制折线图

import matplotlib.pyplot as plt

dataX = [1,2,3,4]
dataY = [2,4,4,2]
plt.plot(dataX,dataY)
#配置中文显示
plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
plt.title("绘制直线");
plt.xlabel("x轴");
plt.ylabel("y轴");
plt.show()

例:用numpy库和matplotlib库绘制图形

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10) # 取值依次为0-9的等差数列
y = np.sin(x)
z = np.cos(x)
plt.plot(x, y, marker="*", linewidth=3, linestyle="--", color="red")
#marker设置数据点样式,linewidth设置线宽,linestyle设置线型样式,color设置颜色
plt.plot(x, z)
plt.title("matplotlib")
plt.xlabel("x")
plt.ylabel("y")
plt.legend(["Y","Z"], loc="upper right")# 设置图例
plt.grid(True)
plt.show()
8.2 绘制柱状图

​ 由一系列高度不等的纵向条纹表示数据分布的情况,用来比较两个或以上的数值。

​ 绘制柱状图的 bar 函数的格式:

matplotlib.pyplot.ber(left,height,width=0.8,bottom=None,hold=None,data=None)
参数说明
left接收 array。表示 x 轴数据。无默认。
height接收 array。表示 x 轴所代表数据的数量。无默认。
width接收 0-1 之间的 float。指定柱状图宽度。默认为 0.8。
color接收特定 string 或者包含颜色字符串的 array。表示直方图颜色。默认为 None。

例:用matplotlib库绘制柱状图形

import matplotlib.pyplot as plt

x = [0,1,2,3,4,5]
y = [1,2,3,2,4,3]
plt.bar(x,y) #竖的条形图
plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签
plt.title("柱状图"); #图标题
plt.xlabel("x轴");
plt.ylabel("y轴");
plt.show()

例:绘制并列柱状图

import numpy as np
import matplotlib.pyplot as plt
#fig,ax=plt.subplots()
plt.rcParams['font.family']=['SimHei']#用来显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.figure(figsize=(7,5))
x=np.arange(1,6)
Y1=np.random.uniform(1.5,1.0,5)
Y2=np.random.uniform(1.5,1.0,5)
plt.bar(x,Y1,width=0.35,facecolor='lightskyblue',edgecolor='white')
plt.bar(x+0.35,Y2,width=0.35,facecolor='yellowgreen',edgecolor='white')
plt.show()
8.3 绘制直方图

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

​ 绘制直方图是使用matplotlib.pyplot.hist()函数,格式:

matplotlib.pyplot.hist(x,bins=None,range=None,density=None,weights=None,
bottom=None,histtype='bar',align='mid',orientation='vertical',rwidth=Non
e,color=None,label=None,stacked=False,normed=None,data=None,…)

​ 可以看到有很多参数,在实际使用过程中只需要关注几个重要的参数即可。其中,参数bins: 划分间隔,可以采用整数来指定间隔的数量,也可以通过列表来直接指定间隔的范围。最简单的,使用默认的,输入数据,绘制直方图,而不设置任何参数

例:绘制直方图

import matplotlib.pyplot as plt
import numpy as np
mean, sigma = 0, 1 # mean=0 均值为0,sigma=1 标准差为1
x = mean + sigma * np.random.randn(10000)
plt.hist(x,50,density=1,histtype='bar',facecolor='red',alpha=0.75)
plt.show()

例:绘制直方图及与该图相对应的正态分布曲线

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
fig,ax=plt.subplots()
plt.rcParams['font.family']=['SimHei']#用来显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
np.random.seed(1587554)
mu=100
sigma=15
x=mu+sigma*np.random.randn(437)
num_bins=50
n,bins,patches=ax.hist(x,num_bins,density=1) #绘制直方图
y=norm.pdf(bins,mu,sigma) 
#正态概率密度函数 norm.pdf(X,mu,sigma)其中 x 为向量,mu 为均值,sigma 为标准差。
ax.plot(bins,y,'--') 
fig.tight_layout() #自动调整子图参数,使之填充整个图像区域
plt.show()
8.4 绘制散点图

​ 散点图在回归分析中使用较多,它将序列显示为一组点。值由点在图表中的位置表示,类别由图表中的不同标记表示,因此散点图通常用于比较跨类别的聚合数据

​ 绘制散点图的 scatter 函数的格式:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)
参数说明
x,y接收 array。表示 x 轴和 y 轴对应的数据。无默认。
s接收数值或者一维的 array。指定点的大小,若传入一维 array 则表示每个点的大小。默认为 None。
c接收颜色或者一维的 array。指定点的颜色,若传入一维 array 则表示每个点的颜色。默认为 None
marker接收特定 string。表示绘制的点的类型。默认为 None。
alpha接收 0-1 的小数。表示点的透明度。默认为 None。

例:绘制散点图

import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
plt.scatter(x,y)
plt.show()
8.5 绘制极坐标图

​ 极坐标图用于对多维数组进行直接的对比,多用在企业的可视化数据模型的对比与分析中。

例:绘制极坐标图

import matplotlib.pyplot as plt
import numpy as np
theta=np.arange(0,2*np.pi,0.02)
ax1 = plt.subplot(121, projection='polar')
ax1.plot(theta,theta/6,'--',lw=2)
plt.show()
该例绘制了一个极坐标图,用 plt.polar()函数来实现。在 matplotlib 库中 pyplot子库提供了绘制极坐标图的方法,在调用 subplot()创建子图时通过设置projection='polar'即可创建一个极坐标图,然后调用 plot()在极坐标子图中绘图。
8.6 绘制饼图
饼图用于表示不同分类的占比情况,通过弧度大小来对比各种分类,饼图通过将一个圆饼按照分类的占比划分成多个区块,整个圆饼代表数据的总量,每个区块(圆弧)表示该分类占总体的比例大小。
# 绘制饼图的 pie 函数的格式
matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None, radius=None, … )
参数说明
x接收 array。表示用于绘制撇的数据。无默认。
explode接收 array。表示指定项离饼图圆心为 n 个半径。默认为 None。
labels接收 array。指定每一项的名称。默认为 None。
color接收特定 string 或者包含颜色字符串的 array。表示饼图颜色。默认为 None。
autopct接收特定 string。指定数值的显示方式。默认为 None。
pctdistance接收 float。指定每一项的比例和距离饼图圆心 n 个半径。默认为 0.6。
labeldistance接收 float。指定每一项的名称和距离饼图圆心多少个半径。默认为 1.1。
radius接收 float。表示饼图的半径。默认为1。

例:绘制饼图

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #设置字体
plt.title("饼图");#设置标题
labels = '计算机系','机械系','管理系','社科系'
sizes = [45,30,15,10] #设置每部分大小
explode = (0,0.0,0,0) #设置每部分凹凸
counterclock = False#设置顺时针方向
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90) #设置饼图的起始位置,startangle=90表示开始角度为90度
plt.show()
饼图绘制中,如果在 explode=(0,0.0,0,0)中将相应的 0.0 改为 0.1 即可将第二部分“机械系”区域凸显。
  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ON.LIN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值