Python数据可视化编程实践_绘制图表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Python数据可视化编程实践-绘制图表
准备工作
打开Jupyter Notebook,导入需要的包,并配置好图片交互和中文显示环境:
import pandas as pd
import numpy as np
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.cm as cm
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
定义图表类型——柱状图、线形图和堆积柱状图
调用figure()方法,创建一个新的图表,接下来的绘图操作都在此图表中进行,参数figsize=(12,6)表示该图表的大小。
调用subplot(231)方法把图表分割成2行3列的网格,1表示图形的标号。x = [1, 2, 3, 4]
y =[5, 4, 3, 2]
plt.figure(figsize=(12,6))
plt.subplot(231)
plt.plot(x,y) # 折线图
plt.subplot(232)
plt.bar(x,y) # 垂直柱状图
plt.subplot(233)
plt.barh(x,y) # 水平柱状图
plt.subplot(234)
plt.bar(x,y)
y1= [7,8,5,3]
plt.bar(x,y1,bottom=y,color='r') # 堆叠柱状图设置参数bottom=y
plt.subplot(235)
plt.boxplot(x) # 箱线图
plt.subplot(236)
plt.scatter(x,y) # 散点图
plt.show()
具体解释下箱线图中的几个最重要的显示选项。
首先,我们可以添加从箱体延伸出来的箱须来展示数据集合的整个范围。箱体和箱须主要用于表现一个或多个数据集合中数据的编号,容易对数据进行对比而且易于理解。在同一个箱线图中可以呈现5种数据。
最小值:数据集合的最小值。
第二四分位数:其以下为数据集合中较低的25%数据。
中值:数据集合的中值
第三四分位数:其以上为数据集合中较高的25%数据。
最大值:给定数据集合的最大值。
dataset = [113, 115, 119, 121, 124,
124, 125, 126, 126, 126,
127, 127, 128, 129, 130,
130, 131, 132, 133, 136]
plt.figure(figsize=(10,6))
plt.subplot(121)
plt.boxplot(dataset, vert = False)
plt.subplot(122)
plt.hist(dataset)
plt.show()
我们用同一个数据集合来绘制箱线图和直方图,观察两种图表在数据展现上的差异。左图呈现了五个统计数据,右图展示了数据集合在给定范围内的分组情况。
简单的正弦图和余弦图
我们对从-Pi到Pi之间具有相同线性距离的256个点来计算正弦值和余弦值,然后把sin(x)值和cos(x)值在用以图表中绘制出来。
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y = np.cos(x)
y1 = np.sin(x)
plt.figure(figsize=(10,6))
plt.plot(x, y)
plt.plot(x, y1)
plt.title("Functions $\sin$ and $\cos$") #设置图标题
plt.xlim(-3.0, 3.0) #设置x轴范围
plt.ylim(-1.0, 1.0) #设置y轴范围
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$']) # 用希腊字母标注x轴标签plt.yticks([-1, 0, +1],
[r'$-1$', r'$0$', r'$+1$'])
plt.show()
设置坐标轴长度和范围
如果不实用axis()或者其他参数设置,matplotlib会自动使用最小值,刚好可以让我们在一个图中看到所有的数据点。调用autoscale()方法,会以坐标轴的最佳大小适应数据的显示。
axis()里面的值分别表示坐标轴上xmin、xmax、ymin、ymax
axhline()表示绘制了一条y=0的水平线
axvline()表示绘制了一条x=0的垂直线
axhline(4)表示绘制了一条y=4的水平线l=[-1, 1, -10, 10]
plt.axis(l)
plt.axhline()
plt.axvline()
plt.axhline(4)
设置图表的线型、属性和格式化字符串常见的线条样式:
- 直线
--虚线
-. -.形式
: 细小虚线
常见的点样式:
s--方形