pandas中的绘图函数
- pandas中的绘图函数实际上是调用的matplotlib
- plot()
- pip install scipy
线形图
- 反映趋势
1. series线性图
s = Series(data=np.random.randint(0,10, size=10))
s

# 默认画的是线形图
# 以index作为x轴数据,以value作为y轴数据
s.plot()

2. dataframe线性图
index = ['张三', '李四', '王五', '赵六']
columns = ['语文', '数学', '英语']
data = np.random.randint(0, 150, size=(4, 3))
ddd = DataFrame(index=index, columns=columns, data=data)
ddd

显示中文
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
解决中文情况下负号没法正常显示的问题.
plt.rcParams['axes.unicode_minus'] = False
ddd.index = [-2, -1, 0, 1]
# 以index作为x轴数据,每一列画一条线.
ddd.plot()

柱状图
- 比较大小
Series柱状图
参数:kind = ‘bar’/‘barh’
s.plot(kind='bar', color=np.random.rand(10, 3))

横向
s.plot(kind='barh')

DataFrame柱状图

# 每一行的数据放在一起,比较柱子大小.
ddd.plot(kind='bar')

水平柱状图
ddd.plot(kind='barh')

直方图
只需要一维数据, 自动计算频数.
-
反映的是数据的分布
-
y轴的数据是数据出现的次数. 我们叫做频数.
-
kind=‘hist’
s.plot(kind='hist', bins=10)

计算 直方数据
np.histogram(s)

density=True显示密度估计
s.plot(kind='hist', density=True, bins=20)

np.histogram(s, density=True, bins=20)

kde图:(看拟合程度)
-
拟合密度估计,用于弥补直方图由于参数bins设置的不合理导致的精度缺失问题
s.plot(kind='hist', density=True, bins=10) s.plot(kind='kde') # kernel density estimate

练习:绘制一个由两个不同的正态分布组成的的双峰分布
n1 = np.random.normal(loc=5, scale=5, size=10000)
n2 = np.random.normal(loc=35, scale=10, size=10000)
n = np.hstack((n1, n2))
s = Series(data=n)
s.plot(kind='hist', density=True, bins=200)
s.plot(kind='kde')

散布图 (散点图)
看两个一维数据组成的一个关系数据
- 观察两个一维数据数列之间的关系的有效方法
- DataFrame对象可用
- kind = ‘scatter’
- 标准正态分布特点:1)均值为0, 2) -3~3 范围
创建一个df
df = DataFrame({'A': np.random.randn(1000), 'B': np.random.randn(1000), 'C': np.random.randn(1000), 'D': np.random.randn(1000)})
df.head()

数值特点:均值为0, 在-3~3区间
散布图:
#查看A,B两列数据组成的一个新的关系数据(相当于俯视图)
df.plot(x='A', y='B', kind='scatter')

散布图矩阵,当有多个点时,两两点的关系
- 使用函数:pd.plotting.scatter_matrix()
- 参数diagonal:设置对角线的图像类型
df中A,B,C,D两两组合就是16个
pd.plotting.scatter_matrix(df, alpha=0.5, figsize=(4*4, 4*4), diagonal='kde')

本文介绍了Pandas中基于matplotlib的绘图函数,包括线形图、柱状图、直方图和散点图的使用。线形图用于反映趋势,柱状图用于比较大小,直方图展示数据分布,而散点图则用于观察两个一维数据之间的关系。文中还提到了解决中文显示问题、直方图的密度估计以及如何绘制双峰分布和散布图矩阵的方法。
839

被折叠的 条评论
为什么被折叠?



