可视化——matplotlib(图表的绘制:线形图 ,和环形图,柱状图 ,直方图 ,散点图和气泡图 ,箱型图,极坐标图)

pyplot的17个基础图标函数

函数 说明
plt.plot(x,y,fmt,……) 绘制一个坐标图
plt.boxplot(data,notch,position) 绘制一个箱形图
plt.bar(left,height,width,bottom) 绘制一个条形图
plt.bar(width,bottom,left,height) 绘制一个横向条形图
plt.polar(theta,r) 绘制极坐标图
plt.pie(data, explode) 绘制饼图
plt.psd(x,NFFT=256,pad_to,Fs) 绘制功率谱密度图
plt.specgram(x,NFFT=256,pad_to,Fs) 绘制一个谱图
plt.cohere((x,y,NFFT=256,Fs)) 绘制X-Y的相关性函数的图
plt.scatter(x,y) 绘制散点图,其中x和y长度相同
plt.step(x,y,where) 绘制一个布阶图
plt.hist(x,bin,normed) 绘制直方图
plt.contour(X,Y,Z,N) 绘制等值图
plt.vline() 绘制垂直图
plt.stem(x,y,linefmt,markerfmt) 绘制柴火图
plt.plot_date() 绘制数据日期
Plt.plotfile() 绘制数据后写入文件

1. 线形图(plot函数)

数据可视化(pylot的函数,中文显示,文本显示,子绘图区域)

2. 饼图和环形图

饼图概念:
饼图用于表示不同分类的占比情况,通过弧度大小来对比各种分类,饼图通过将一个圆饼按照分类的占比划分成多个区块,整个圆饼代表数据的总量,每个区块(圆弧)表示该分类占总体的比例大小。

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, counterclock=True,
        wedgeprops=None, textprops=None, center=(0, 0), frame=False,
        rotatelabels=False, *, data=None)

常用参数部分

x: 接收array,表示用于绘制的数据,无默认
explode:默认x的饼图不爆炸。自定义确定哪一块爆炸&爆炸距离。
labelslabeldistance: 默认x没有标签,标签位于1.1倍半径处。自定义每块饼的标签,和位置
autopctpctdistance: 默认x不显示每块饼的百分比标注。autopct自定义是每块饼的百分比属性,如几位小数, pctdistance默认在半径0.6位置显示百分数,自定义百分数距离半径的比例
shadow: 默认x是二维平面饼图,没有阴影。自定义饼图是否有阴影属性
startangle: 默认x第一块饼和水平面的角度不固定。自定义第一块饼图和水平面的角度
colors:自定义每块饼的颜色,默认系统自动设定每块饼的颜色

不太常用参数部分

radius: 默认x半径参数是1。自定义半径的大小,可以是int | float。
counterclock: 自定义指针方向,默认布尔值True,即按照逆时针对x饼图排列。
wedgeprops=dict():设定每块饼图的一些属性。其中edgecolor='w’设定边框颜色为白色,width=0.7设定饼图0.3倍半径是空白, linewidth=10设定边框的粗细为10。
例如:

explode = (0, 0.2, 0, 0)
ax1.pie(sizes, explode=explode, labels=laels, autopct='%.1f%%', pctdistance=0.7,  shadow=True, startangle=90,
        counterclock=False, wedgeprops=dict(edgecolor='w', width=0.7, linewidth=10))

环形图

#所谓的环形图,就是再画一个比上个图小的饼图,并且为白色,所以半径要小
plt.pie(sizes_0,radius=0.6,colors=‘w’)#白色内圈

代码:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
labels = ['第一季度', '第二季度', '第三季度', '第四季度']
sizes=[13.8,22.8,53.3,39.8]
colors = ['tomato',  'goldenrod', 'green', 'y']
sizes_0=[1,0,0,0]#用于显示空心部分的各部分比例
explode = (0, 0.1, 0, 0) # 只爆炸第二块饼,爆炸距离是半径的0.1。
plt.subplot(1,2,1)#第一个饼图
#pctdistance默认在半径0.6位置显示百分数,自定义百分数距离半径的比例
plt.pie(sizes, explode=explode, labels=labels,colors=colors,autopct='%.2f%%', pctdistance=0.7, shadow=False, startangle=90,counterclock=False)
# 等价于 ax1.set(aspect='euqal'),使得饼图在figure窗口放大缩小的过程中,保持圆形不变。
plt.axis('equal')

plt.subplot(1,2,2)#第二个环形图
plt.pie(sizes,pctdistance=0.8,labels=labels,autopct='%.1f%%')
#所谓的环形图,就是再画一个比上个图小的饼图,并且为白色,所以半径要小
plt.pie(sizes_0,radius=0.6,colors='w')#白色内圈
plt.title("xxx")
plt.show()

例图

在这里插入图片描述

3. 柱状图

import matplotlib.pyplot as plt;
plt.bar(   x,       # 元组或列表,数据的x坐标序列
        height,     # 元组或列表,数据序列
        width,      # 数值或列表,条形宽度,默认0.8
        bottom,     # 数值或列表,y轴的基准值,默认0
        align,      # 字符串,两种值可供选择{'center','edge'}
        color,      # 元组或列表,条形颜色
        edgecolor,  # 元组或列表,条边颜色
        linewidth,  # 元组或列表,可选条形边缘宽度,如为0则无边
        tick_label, # 元组或列表或字符串,条形数据的标签
        xerr,yerr,  # 元组或列表或数值,误差线
        ecolor,     # 元组或列表,误差线颜色,默认为黑色
        capsize,    # 误差线长度
        error_kw,   # 字典,错误条
        log,        # 布尔,是否以log对象做刻度,默认为假
        orientation # 字符串,两种值供选择{'vertical'垂直,'horizontal'水平}
        )

在这里插入图片描述
在这里插入图片描述
matplotlib.pyplot.barh (y, width, height=0.8, left=None, *, align=‘center’, **kwargs)
上图代码,bar改为barh得
在这里插入图片描述

4. 直方图

matplotlib.pyplot.hist(
x, bins=None, range=None, d ensity=False, weights=None, 
cumulative=False, bott om=None, histtype='bar', align='mid',
orientation= 'vertical', rwidth=None, log=False, color=None,
lab el=None, stacked=False, *, data=None, **kwargs)

x: 数据集,最终的直方图将对数据集进行统计
bins: 统计的区间分布
range: tuple, 显示的区间,range在没有给出bins时生效
density: bool,默认为false,显示的是频数统计结果,为True则显示频率统计结果(频率统计结果=区间数目/(总数*区间宽度) )。如果 stacked也是True, 则直方的和会被归一化为1。
histtype: 可选{‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}之一,默认为bar,推荐使用默认配置,step使用的是梯状,stepfilled则会对梯状内部进行填充,效果与bar类似
align: 可选{‘left’, ‘mid’, ‘right’}之一,默认为’mid’,控制柱状图的水平分布,left或者right,会有部分空白区域,推荐使用默认。
log: bool,默认False,即y坐标轴是否选择指数刻度
stacked: bool,默认为False,是否为堆积状图
orientation:可选{‘vertical’, ‘horizontal’}, 默认’vertical’。如果设定’horizontal’,则是用barh替换bar
rwidth:浮点数或者None,默认None。设定直方的相对宽度。如果为None,则自动计算宽度。如果histtype设定为’step’或者 ‘stepfilled’,则该参数设定忽略。

例图:

在这里插入图片描述
在这里插入图片描述

5. 散点图和气泡图

matplotlib.pyplot.scatter(
x, y, s=None, c=None, marker=None, cmap=None, norm=None, 
vmin=None, vmax=None, alpha=None, linewidths=None, 
verts=<deprecated parameter>, edgecolors=None, *, plotnonfinite=False, 
data=None, **kwargs)

常用参数有
x,y组成了散点的坐标;
s为散点的面积;
c为散点的颜色(默认为蓝色’b’);
marker为散点的标记;
alpha为散点的透明度(0与1之间的数,0为完全透明,1为完全不透明);
linewidths为散点边缘的线宽;
如果marker为None,则使用verts的值构建散点标记;
edgecolors为散点边缘颜色。
其他参数如cmap为colormap;norm为数据亮度;vmin、vmax和norm配合使用用来归一化亮度数据,这些与数据亮度有关
在这里插入图片描述
在这里插入图片描述

6. 箱型图

pyplot.boxplot(x, notch=None, 
sym=None, vert= None, whis=None,
positions=None, widths=None, 
patch_artist=None,meanline=None, labels=None, ...)

x:接收array。表示用于绘制箱线图的数据。无默认。
notch:接收boolean。表示是否是凹口的形式展现箱线图
sym:接收特定string。指定异常点形状。默认为None。
vert:接收boolean。表示图形是横向纵向或者横向。默认None。
meanline:是否用线的形式表示均值。
showmeans:是否显示均值。
labels:接收array。指定每一个箱线图的标签。默认为None。 showfliers::接收`boolean。表示是否显示异常值。默认为True。
例图:
在这里插入图片描述
在这里插入图片描述

7. 极坐标图

https://www.baidu.com/link?url=cCmHCVDOaJVpsP7KJpuxFXG5lSvK7MH0E8tA5TPB1t2cEbmX33VSraKmknVPycLfpn38bpvqk-xju9Ixd3JDLa&wd=&eqid=cc0e61050001d123000000065fd34646

猜你喜欢

转载自blog.csdn.net/weixin_46168350/article/details/111042434