熟话说得好,文不如字,字不如表,表不如图,因此掌握用python来进行数据的可视化是很重要的一项本领。

离散变量的可视化:

1. 饼图

import matplotlib.pyplot as plt

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)

x : 指定绘图的数据
explode : 指定饼图某些部分的突出显示,即呈现爆炸式。
labels : 为饼图添加标签说明,类似于图例说明。
colors : 指定饼图的填充色。
autopct :自动添加百分比显示,可以再用格式化的方法显示。
pctdistance:设置百分比标签与圆心的距离。
shadow:是否添加饼图的阴影效果。
labeldistance :设置各扇形标签(图例)与圆心的距离。
startangle:设置饼图的初始摆放角度。
radius :设置饼图的半径大小。
counterclock : 是否让饼图按逆时针顺序呈现。
wedgeprops : 设置饼图内外边界的属性,如边界线的粗细、颜色等。
textprops:设置饼图中文本的属性,如字体大小、颜色等。
center : 指定饼图的中心点位置,默认为原点。
frame :是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置。

在这里插入图片描述

在运行的时候,可能会遇到中文字符在图上无法显示的问题,只需要在报错的文件中,加上几行代码:

from pylab import mpl
 
# 设置中文显示字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

就可以正常显示了。

一些更加具体的设置如下:

在这里插入图片描述

除此之外,pandas中的plot其实也可以绘制饼图 , 这里简单举个例子,不对所有参数做介绍了,用的时候直接去搜就行。

在这里插入图片描述

2.条形图

可以使用matplotlib , pandas , seaborn 模块来绘制,按顺序依次介绍。

matplotlib :

bar(left,height,width=0.8,bottom=None,color=None,edgecolor=None,
linewidth=None,tick_label=None,xerr=None,yerr=None,
label=None,ecolor=None,align , log=False , **kwargs)

left : 传递数值序列,指定条形图中x轴上的刻度值。(若报错的话就用x替代left)
height : 传递数值序列 , 指定条形图y轴上的高度。
width : 指定条形图的宽度,默认为0.8
bottom : 用于绘制堆叠条形图。(若报错的话就用y替代bottom)
color : 指定条形图的填充色。
edgecolor : 指定条形图的边框色。
linewidth : 指定条形图边框的宽度,如果指定为0,表示不绘制边框。
tick_label : 指定条形图的刻度标签。
xerr : 如果参数不为None , 表示在条形图的基础上添加误差棒。
yerr : 同xerr。
label : 指定条形图的标签,一般用以添加图例。
ecolor : 指定条形图误差棒的颜色。
align : 指定x轴刻度标签的对齐方式,默认为center,表示刻度标签居中对齐,如果设置为edge,则表示在每个条形的左下角呈现刻度标签。

log: bool类型参数,是否对坐标轴进行log转换,默认为False。
**kwargs : 关键字参数,用于对条形图进行其他设置,如透明度等。

1.垂直或水平条形图

在这里插入图片描述

在这里插入图片描述

2.堆叠条形图
无论是垂直条形图还是水平条形图,都只是反映单个离散变量的统计图。如果想通过条形图传递连个离散变量的信息,就要用到堆叠条形图,也就是,横坐标代表一个维度的离散变量,堆叠起来的块代表另一个维度的离散变量,举个例子,某产业四个季度的产业值为例:

在这里插入图片描述

3.水平交错条形图
堆叠条形图可以包含两个离散变量的信息,可以比较各个季度整体产值的高低水平,但是缺点是不易区分“块”之间的差异。要想解决这一问题,就要用到交错条形图。

在这里插入图片描述
之前我们介绍过可以使用matplotlib , pandas , seaborn 模块来绘制,其中后两种就不着重介绍了,主要讲一下seaborn里面的水平交错条形图。

sns.barplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,
ci=95,n_boot=1000,orient=None,color=None,palette=None,
saturation=0.75,errcolor=‘.26’,errwidth=None,dodge=True,
ax=None,**kwargs)

x : 指定条形图的x轴数据
y : 指定条形图的y轴数据
hue : 指定用于分组的另一个离散变量
data : 指定用于绘图的数据集
order : 传递一个字符串列表,用于分类变量的排序
hur_order : 传递一个字符串列表,用于分类变量hue值得排序
ci : 用于绘制条形图的误差棒
n_boot : 当指定ci参数的时候,可以通过n_boot参数控制自助抽样的迭代次数
orient : 指定水平或垂直条形图。
color : 指定所有条形图所属的一种填充色。
palette : 指定hue变量中各水平的颜色。
saturation : 指定颜色的透明度。
errwidth : 指定误差棒的线宽。
errcolor : 制定误差棒的颜色、。
capsize : 指定误差棒两端线条的宽度。
dodge : bool类型参数,当使用hue参数的时候,是否绘制水平交错条形图,默认为TRUE。
ax : 用于控制子图的位置。
**kwagrs : 关键字参数,可以调用plt.bar函数中的其他参数。

在这里插入图片描述

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐