【数据分析day05】pandas中的绘图函数

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

  • 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')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值