探索数据可视化:Pandas中的强大绘图函数

本文详细介绍了Pandas库中的plot函数,包括其基本用法、参数详解以及不同图表类型(如折线图、柱状图、散点图、箱线图)的实例演示。通过这些函数,可以方便地对数据进行可视化分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

plot()

plot()是 Pandas 中最常用的绘图函数之一,它可以绘制多种类型的图表,如折线图、柱状图、散点图等。常用参数:

  • kind:指定要绘制的图表类型,可选值包括 ‘line’(折线图,默认)、‘bar’(柱状图)、‘barh’(水平柱状图)、‘hist’(直方图)、‘scatter’(散点图)等。

  • x 和 y:指定要在图表中使用的数据列,其中 x 是横轴数据列,y 是纵轴数据列。

  • title:设置图表的标题。

  • xlabel 和 ylabel:设置横轴和纵轴的标签。

  • color:设置图表的颜色。

  • legend:控制是否显示图例。

  • figsize:设置图表的尺寸。

  • grid:控制是否显示网格线。

折线图

import numpy as np
import pandas as pd
from pandas import DataFrame, Series

s = Series(data=np.random.randint(0, 10, size=10))
s
"""
0    8
1    6
2    9
3    2
4    1
5    4
6    3
7    0
8    6
9    9
dtype: int32
"""
# series画图, 默认以series的index作为x轴数据, values作为y轴数据. 
# 默认画折线图, 折线图反映趋势. 
s.plot(title='Sales Trend')
<AxesSubplot:title={'center':'Sales Trend'}>

在这里插入图片描述

index = ['悟空', '悟饭', '悟天', '武神']
columns = ['语文', '数学', '英语']
data = np.random.randint(0, 150, size=(4, 3))
df = DataFrame(index=index, columns=columns, data=data)
df
语文数学英语
悟空90112138
悟饭113245
悟天571395
武神62476
import matplotlib.pyplot as plt
# matplotlib默认不能正常显示中文的. 
# 如果要显示中文, 要更改字体
plt.rcParams['font.sans-serif'] = 'SimHei'
# 在中文字体下, 默认的负号, 会显示不正常
plt.rcParams['axes.unicode_minus'] = False
# dataframe是按照每一列去画一个折线图. 
# ylim=(-100, 150)  y轴范围
df.plot(xlabel='name', ylabel='score',ylim=(-100, 150))
<AxesSubplot:xlabel='name', ylabel='score'>

在这里插入图片描述

柱状图

柱状图用来比大小. 也叫做条形图

# kind = 'bar'/'barh' 柱状图
df.plot(kind='bar')
<AxesSubplot:>

在这里插入图片描述

# kind='barh' 水平直方图
df.plot(kind='barh') 
<AxesSubplot:>

在这里插入图片描述

散点图

# 绘制散点图
df.plot(kind='scatter', x='语文', y='数学', title='成绩散点图')
<AxesSubplot:title={'center':'成绩散点图'}, xlabel='语文', ylabel='数学'>

在这里插入图片描述

bar()

是 Pandas 中用于绘制柱状图的函数,它可以接受一系列参数来自定义柱状图的样式和属性
区别plot()的特殊参数:

  • rot: 旋转 x 轴标签的角度。
# 创建示例数据
data = {'城市': ['北京', '上海', '广州', '深圳'],
        '人口': [2154, 2423, 1404, 1303]}

df = pd.DataFrame(data)

# 绘制柱状图
pt = df.plot(kind='bar', x='城市', y='人口', xlabel='city', ylabel='人口', color='skyblue', title='中国主要城市人口')
# 设置 x 轴标签旋转角度为45度
pt.set_xticklabels(df['城市'], rotation=45)

# 显示图例
pt.legend(['人口'])

# 显示图表
plt.show()

在这里插入图片描述

hist() 绘制直方图的函数

区别plot()的特殊参数:

  • bins: 指定直方图的柱子数量或柱子的边界值。可以是一个整数,表示柱子的数量,也可以是一个数组,表示柱子的边界值。
  • range: 指定直方图的取值范围。
  • density: 是否将直方图的频数转换为频率。
data = [10, 15, 20, 30, 30, 35, 40, 45, 50, 55, 60, 65, 70]

# 绘制直方图,density=True将频数转换为频率
plt.hist(data, bins=5, range=(0, 100), color='skyblue', edgecolor='black', density=True)

# 设置标题和标签
plt.title('分数分布直方图(频率)')
plt.xlabel('分数')
plt.ylabel('频率')

# 显示图表
plt.show()

在这里插入图片描述

scatter()

scatter() 绘制散点图的函数,它可以接受一系列参数来自定义散点图的样式和属性。
区别plot()的特殊参数:

  • s: 指定散点的大小。
  • c: 指定散点的颜色。
  • marker: 指定散点的标记样式。
  • alpha: 指定散点的透明度。
data = {
    'x': [1, 2, 3, 4, 5],
    'y': [10, 15, 7, 12, 8],
    'label': ['A', 'B', 'C', 'D', 'E']
}

df = pd.DataFrame(data)
# 绘制散点图
# c='red' 指定了散点的颜色为红色
# marker='o' 指定了散点的标记样式为圆形,
# alpha=0.5 指定了散点的透明度为 0.5
plt.scatter(df['x'], df['y'], s=100, c='red', marker='o', alpha=0.5)

# 设置标题和标签
plt.title('散点图示例')
plt.xlabel('X')
plt.ylabel('Y')

# 显示图表
plt.show()

在这里插入图片描述

boxplot() 绘制箱线图

boxplot()它可以用于可视化数据的分布情况和离群值。
区别plot()的特殊参数:

  • by: 指定一个列名,用于按照该列的值进行分组,并绘制多个箱线图。
  • column: 指定一个列名,用于选择要绘制箱线图的列。
  • ax: 指定一个 Matplotlib 的 Axes 对象,用于绘制箱线图的子图。
  • notch: 是否绘制凹口箱线图。
  • sym: 指定离群值的显示样式。
  • vert: 是否将箱线图垂直显示。
  • patch_artist: 是否使用填充颜色绘制箱线图。
  • meanline: 是否绘制均值线。
  • showfliers: 是否显示离群值。
  • showmeans: 是否显示均值。
  • showbox: 是否显示箱体。
  • showcaps: 是否显示箱线的边界线。
  • showwhiskers: 是否显示须线。
  • whis: 指定须线的长度。
np.random.seed(1)
data = {
    'Category': np.random.choice(['A', 'B', 'C'], size=100),
    'Value': np.random.normal(loc=0, scale=1, size=100)
}

# 创建 DataFrame
df = pd.DataFrame(data)
#  根据Category列的值进行分组,并绘制每个分组的 "Value" 列的箱线图。
df.boxplot(column='Value', by='Category')

<AxesSubplot:title={'center':'Value'}, xlabel='Category'>

在这里插入图片描述

# 绘制凹口箱线图,凹口箱线图可以用于比较两个或多个分组之间的差异
df.boxplot(column='Value', by='Category', notch=True)
<AxesSubplot:title={'center':'Value'}, xlabel='Category'>

在这里插入图片描述

# 将离群值显示为红色的叉号
# vert=False 将箱线图水平显示
# patch_artist=True 使用填充颜色绘制箱线图
df.boxplot(column='Value', by='Category', sym='rx', vert=False, patch_artist=True)
<AxesSubplot:title={'center':'Value'}, xlabel='Category'>

在这里插入图片描述

bp = df.boxplot(column='Value', by='Category')

# 设置 x 轴标签
bp.set_xticklabels(['Group 1', 'Group 2', 'Group 3'])
# 显示图形
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值