
1. 三角函数图形
这里我们使用matplotlib
画图包绘图。matplotlib
可以方便地绘制数据分析领域的基础图形,比如折线图line chart、直方图histogram和箱型图boxplot等等。

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 20, 0.1)
y = np.cos(x)
##这里使用和plot函数默认的坐标轴和图例
plt.plot(x, y)
Out[45]: [<matplotlib.lines.Line2D at 0x232e9af94f0>]
Cos(x)余弦函数结果如下图:

也可以逐步画图。并拼接多个图形.
##也可以逐步画图。并拼接多个图形
z = np.sin(x)
r = np.tan(x)
##设置画布的基础
fig, axs = plt.subplots(nrows=3, ncols=1)
#先画第一个图,cosx
axs[0].plot(x, y)
axs[0].set_ylabel('Cosine')
##再画第二个图,sinx
axs[1].plot(x, z)
axs[1].set_ylabel('Sine')
##再画第三个图,tanx
axs[2].plot(x, r)
axs[2].set_ylabel('Tangent')
plt.show()
画图结果如下:

2. 单变量统计分析画图
这里我们继续使用常见的学术画图包matplotlib
,以及基于matplotlib
创建的高级画图包seaborn
。Seaborn
致力于提供更高层和更简洁的画图函数,绘制美观且信息更加丰富的图片。

2.1 线形图 line plot
##导入相关的包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.stats as stats
x = np.random.randint(0,100, 100)
##折线图 line chart
plt.plot(x)

2.2 散点图scatter plot
##散点图scatter plot
plt.plot(x, '.')

2.3 直方图 histogram
##直方图
x=np.random.randn(1000)
plt.hist(x, bins=20)

2.4 核密度图kdensity
核密度图可以看成是更加平滑的直方图,反应的是随机变量在某个区间内取值的概率。
##kdensity plot
sns.kdeplot(x) ##这个x是2.1.3中的x

2.5 CDF累积分布函数图
学过概率论的同学,想必都会记得这两个函数,一个是PDF,一个是CDF。CDF , cumulative distribution function,又叫累积分布函数,是PDF概率密度函数的积分,可以完整地展示一个随机变量X的概率分布。
##CDF
plt.plot(stats.cumfreq(x, 30)[0])

2.6 Boxplot箱型图
##boxplot
plt.boxplot(x, sym='.') ##离群值用.标记

2.7 Violin小提琴图
箱型图boxplot + 核密度估计图,就可以生成violin小提琴图。小提琴图的横轴是箱型图的画法,但是纵轴变成了核密度估计图。
##violin
data1 = stats.norm.rvs(size=(1000))
df1 = pd.DataFrame(data1)
sns.violinplot(df1)

2.8 Bar chart 饼图
##bar chart
textlbl = 'A', 'B', 'C', 'D'
pencentage = [20, 30, 10, 40]
offsets = (0, 0.1, 0, 0.05)
plt.pie(pencentage, explode=offsets, labels=textlbl)

2.9 Grouped bar chart 分组条形图
分组条形图可以先分组,在画出每组内部的条形图。这里我们用pandas中的简洁画法。
##grouped bar chart
df1 = pd.DataFrame(np.random.randint(0, 100, (10, 3)), columns = ['A', 'B', 'C'])
df1
df1.plot(kind='bar')

References
- matplotlib.org/tutorials
- seaborn: User guide and tutorial
-----全文结束-----