第一章 数据可视化与matplotlib
1.1数据可视化 1.1.1什么是数据可视化 数据可视化是借助图形化的手段将一组数据以图形的形式表示,并利用数据分析和开发工具发现其中未知信息的数据处理过程。数据可视化其实是一个抽象过程,简单来说就是将一个不易描述的事物形成一个可感知画面的过程,即从数据空间到图形空间的映射,如下图所示: 1.1.2常见的数据可视化方式 主要方式如下: (1)折线图 折线图是将数据标注成点,并通过直线将这些点按某种顺序连接而成的图表,它以折线的方式 形象地反映事物沿某个维度的变化趋势,能够清晰地展示数据增减的趋势、速率、规律及峰值等特征。例: (2)柱状图 柱状图是由一系列宽度相等的纵向矩形条组成的图表,它利用矩形条的高度表示数值,以此反映不同分类数据之间的差异。例: (3)条形图 条形图是横置的柱形图,由一系列高度相等、长短不一的横向矩形条组成。与柱形图相比,比条形图适用于矩形条数量较多的场合,但一般建议矩形条的数量不超过30个。例: (4)堆积图 堆积图分为堆积面积图、堆积柱形图和堆积条形图。其中堆积面积图是由若干折线与折线或水平坐标轴之间的填充区域组成的图表,它的最大区域是一个代表所有数据总和的整体,堆积的各区域代表各组数据,用于反映整体与部分的关系;堆积柱形图和堆积条形图是由若干个以颜色或线条填充、高度不一-的纵向矩形条或横向矩形条堆叠而成的图表,用于反映每个构 成部分在总体中的比重。例: (5)直方图 直方图又称质量分布图,是由一系列高低不等的纵向矩形条或线段组成的图表,用于反映数据的分布和波动情况。例: (6)箱型图 主要用于反映一组或多组数据的对称性、分布程度等信息,因形状如箱子而得名。例: (7)饼图 主要用于显示数据中各项大小与各项总和的比例。例: (8)散点图 主要用于判断两变量之间是否存在某种关联,或者总结数据点的分布模式。例: (9)气泡图 展示多变量关系的图表。例: (10)误差棒图 主要是适使用误差棒注明被测量数据的不确定度大小的图表,用于表示测量数据中客观存在的测量偏差(标准差或标准误差)。例: (11)雷达图 适用于对多指标对象做出全局性、整体性评价的场景,常见于企业经营状况的评价和财务分析。例: (12)统计地图 统计地图主要用于说明某些现象在地域上的分布,适用于比较人口、资源、产量等在各地区的分布情况。例: (13)3D图表 3D图表是一类在三维坐标系中呈现数据的图表例:
第二章 适用matplotlib绘制简单图表
2.1.1使用plot()绘制折线图
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(4,19)
y_max = np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])
y_min = np.array([19,19,20,22,22,20,18,22,23,19,20,14,15,16,14])
`
plt.plot(x,y_max)
plt.plot(x,y_min)
plt.title("2020080603052")
plt.show()`
运行程序,结果如下: 2.2绘制柱形图或堆积柱形图 2.2.1使用bar()绘制柱形图或堆积柱形图 代码如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(5)
y1 = np.array([10,8,7,11,13])
bar_width = 0.3
plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)
plt.title("2020080603052")
plt.show()
运行程序,结果如下: 2.2.2多组柱形图代码如下:
x = np.arange(5)
y1 = np.array([10,8,7,11,13])
y2 = np.array([9,8,5,11,10])
bar_width = 0.3
plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)
plt.bar(x+bar_width,y2,width=bar_width)
plt.title("2020080603052")
plt.show()
运行程序,结果如下; 2,.2.3绘制堆积柱形图代码如下:
plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)
plt.bar(x,y2,bottom=y1,width=bar_width)
plt.title("2020080603052")
plt.show()
运行程序,结果如下: 2.3绘制条形图或堆积条形图 2.3.1使用barh()绘制条形图或堆积条形图 代码如下:
y = np.arange(5)
x1 = np.array([10,8,7,11,13])
bar_height = 0.3
plt.barh(y,x1,tick_label=['a','b,','c','d','e'],height=bar_height)
plt.title("2020080603052")
plt.show()
运行程序,结果如下: 2.3.2多组条形图,代码如下:
y = np.arange(5)
x1 = np.array([10,8,7,11,13])
x2 = np.array([9,6,5,10,12])
bar_height = 0.3
plt.barh(y,x1,tick_label=['a','b,','c','d','e'],height=bar_height)
plt.barh(y+bar_height,x2,height=bar_height)
plt.title("2020080603052")
plt.show()
运行代码,结果如下: 2.3.3绘制堆积条形图代码如下:
plt.barh(y,x1,tick_label=['a','b,','c','d','e'],height=bar_height)
plt.barh(y,x2,left=x1,height=bar_height)
plt.title("2020080603052")
plt.show()
运行代码,结果如下: 2.3.4绘制堆积条形图且添加误差棒,代码如下:
error = [2,1,2.5,2,1.5]
plt.barh(y,x1,tick_label=['a','b,','c','d','e'],height=bar_height)
plt.barh(y,x2,left=x1,height=bar_height,xerr=error)
plt.title("2020080603052")
plt.show()
运行代码,结果如下:
|