提示:数据展现用来直观高效地向他人展示数据分析结果,也称数据可视化。本文介绍通过python如何快速调用第三方库实现数据可视化。本文内容为日常学习记录,提供了最基础的Python数据可视化实现方式,有兴趣可通过Python自主实现,并逐渐深入。
Python 作为一种编程语言,通过调用第三方可视化库作图,覆盖的图表种类很多,定制化非常强,并且免费。再加上 Python 基本涵盖了数据分析的整个流程:从数据处理到数据分析,再到数据展现。可以说是行云流水,一气呵成。所以我们选择使用Python 来做数据展现。在 Python 中有几个常用的第三方可视化库:pandas、matplotlib 以及 seaborn。
本文通过matplotlib库实现数据可视化,matplotlib库相较于 pandas 绘图以及 seaborn 绘图工具更为底层,因此,matplotlib库中的绘图函数、参数相对更多,我们可以根据自己的风格自由选择。从应用范围上来看,在 Python 数据分析领域,matplotlib 库是与 numpy 库、pandas 库并驾齐驱的三库之一,被称作 Python 数据分析的“三剑客”,由此可见其应用范围之广。
1.生成画布
一个完整的图形除了图表,还包括一系列的图表元素:图表标题、坐标轴刻度、坐标轴标题、图例以及数据标签。
生成画布用到的是pyplot模块下的figure函数,即plt.figure()。其中的参数 figsize 可以控制画布的长和宽,一般用元组的形式进行赋值。
2.设置x/y坐标值
绘制图表时,先确定好坐标点,再经由绘图函数就能生成我们熟知的折线图、柱状图等图表。
x是指坐标点的横坐标(简称x坐标值),y是指坐标点的纵坐标(简称y坐标值),它们均为可迭代对象,你可以理解为有序的元素序列,比如 x = (x1, x2, x3, ……, xn),y = (y1, y2, y3, ……, yn)。
3.绘制折线图和柱状图
绘制柱状图也需要设置 x/y 坐标值,不同的是柱状图绘图函数 plt.bar()的参数是 x 和height,height 表示柱子的高,对应 y 坐标值。
4.设置图表标题
设置图表标题用的是plt.title()函数
plt.title(label, fontsize = None)
label 表示标题名,常见为字符串类型
fontsize 表示标题的字体大小,常见为数值类型
5.设置坐标轴
设置x、y轴刻度的函数分别是plt.xticks()和plt.yticks()
plt.xlabel(xlabel, fontsize = None) xlabel 表示x轴标题名,常见为字符串类型
plt.ylabel(ylabel, fontsize = None) ylabel 表示y轴标题名,常见为字符串类型
fontsize 表示标题字体大小,常见为数值类型
6.设置图例
plt.legend(labels) label表示图例名称 plt.legend([‘变化’, ‘分布’])
7.设置数据标签
添加数据标签plt.test()函数,参数:x,y,s,ha,va以及fontsize
plt.text(x,y,s,ha=None,va=None,fontsize=None)
x,y表示数据标签位置,数值或字符串类型
s表示数据标签文本内容,数值或字符串类型
ha表示水平对齐方式,选择left,right,center
va表示垂直对齐方式,center,top,bottom
fontsize表示数据标签字体大小,数值类型
for a,b in zip(x, y):
plt.text(a,b,b,ha=‘center’,va=‘bottom,fontsize=12’)
8.zip()函数
zip()函数理解为拉链,x=(x1, x2, x3,……, xn)为拉链的左边,y=(y1, y2, y3,……, yn)为拉链的右边,经过 zip()函数,就合并为(x1, y1), (x2, y2), (x3, y3),……,(xn, yn)
# 生成画布,并设置画布的大小
plt.figure(figsize=(6, 6))
# 设置扇形面积值
x = pd.Series([59, 70, 68, 56])
# 设置百分比小数的位数:保留百分比小数点后两位
autopct='%.2f%%'
# 设置百分比字体大小和颜色
textprops = {'fontsize': 12, 'color': 'black'}
# 设置饼图的“爆炸效果”:让扇形远离圆心
explode = [0.1, 0, 0, 0]
# 设置不同扇形的颜色
colors = ['cornflowerblue', 'salmon', 'yellowgreen', 'orange']
# 绘制饼图
plt.pie(x, autopct=autopct, textprops=textprops,
explode=explode, colors=colors)
# 设置图表标题名及字体大小
plt.title('闪光科技2020年各季度研发费用占比饼图', fontsize=20)
# 设置图例
plt.legend(['第一季度', '第二季度', '第三季度', '第四季度'])
# 生成画布,并设置画布的大小为(6, 6)
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
# 设置 x/y坐标值
x = pd.Series(['第一季度', '第二季度', '第三季度', '第四季度'])
y = pd.Series([59, 70, 68, 56])
# 绘制柱状图
plt.bar(x,height=y,color='darkorange')
# 绘制折线图
plt.plot(x, y, color='dodgerblue')
# 设置图表标题名为'闪光科技2020年各季度研发费用分布图',字体大小为 20
plt.title('闪光科技2020年各季度研发费用分布图', fontsize = 20)
# 设置坐标轴的刻度字体大小为 12
plt.xticks(fontsize = 12)
plt.yticks(fontsize =12)
# 设置 x、y 轴标题分别为'季度'、'研发费用(百万元)',字体大小均为 15
plt.xlabel('季度', fontsize = 15)
plt.ylabel('研发费用(百万元)', fontsize = 15)
# 设置图例为'研发费用变化'、'研发费用分布'
plt.legend(['研发费用变化', '研发费用分布'])
# 设置数据标签,标签内容是 y 坐标值
for a, b in zip(x, y):
print(a, b)
plt.text(a, b, b, ha = 'center', va = 'bottom', fontsize = 15)
数据分析报告的结构,一般会采用总分总结构,包括:背景、目的、分析思路、分析正文、结论及建议、附录等。
1.背景:阐述进行数据分析的原因、意义,以及其他相关信息,比如公司现阶段的经营情况。
2.目的:这次分析要解决什么问题,达到何种目的。有时会将背景和目的放在一起写。
3.分析思路:用到了什么分析方法,得到的分析框架是什么。
4.分析正文是报告的主体部分,包含所有的数据事实和观点,通过数据图表和文字呈现,一般包括三个部分:
a. 数据来源:解释数据的来源,并展示数据的基本情况。
b. 数据处理:进行了哪些数据处理操作以及处理的结果是什么。
c. 数据分析:以图文结合的方式展示分析过程和结果,并能证明分析过程合理,分析结果能够应用于实际的工作场景。
5.结论及建议:以综述性文字展现数据分析结果,并结合公司的具体业务或问题给出建议。
6.附录:提供正文中涉及的,但是未详细阐述的资料,一般包括名词解释、源数据以及分析代码等,为整个分析报告提供补充说明。
2022年5月11日
青海·西宁