Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >数据导入与预处理-拓展-pandas可视化

数据导入与预处理-拓展-pandas可视化

作者头像
用户2225445
发布于 2022-11-12 09:21:27
发布于 2022-11-12 09:21:27
3.2K00
代码可运行
举报
文章被收录于专栏:IT从业者张某某IT从业者张某某
运行总次数:0
代码可运行

数据导入与预处理-拓展-pandas可视化

参考:微信公众号「早起Python

1. 折线图

1.1 导入数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

import matplotlib

%matplotlib inline
font = {
    'family':'SimHei',
    'weight':'bold',
    'size':12
}
matplotlib.rc("font", **font)
matplotlib.rcParams['axes.unicode_minus']=False

创建时间数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
ts

输出为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2000-01-01   -0.329415
2000-01-02   -0.508904
2000-01-03    0.910287
2000-01-04   -0.071677
2000-01-05    1.093037
                ...   
2002-09-22   -0.105153
2002-09-23    0.154497
2002-09-24   -0.151585
2002-09-25    0.025427
2002-09-26    1.579653
Freq: D, Length: 1000, dtype: float64

进行累加操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ts = ts.cumsum() # 按照行进行累计 按列可以添加axis = 1
ts

输出为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2000-01-01    -0.329415
2000-01-02    -0.838319
2000-01-03     0.071968
2000-01-04     0.000291
2000-01-05     1.093327
                ...    
2002-09-22    46.536297
2002-09-23    46.690793
2002-09-24    46.539208
2002-09-25    46.564635
2002-09-26    48.144288
Freq: D, Length: 1000, dtype: float64

创建DF

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list("ABCD"))
df

输出为:

DataFrame各列累加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = df.cumsum()
df

输出为:

1.2 绘制单列折线图

绘制 df 第一列的折线图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 绘制 df 第一列的折线图
df['A'].plot()
plt.show()

输出为:

1.3 绘制多列折线图

df 的四列分别放在四个子图上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 折线图|子图
# 将 df 的四列分别放在四个子图上
df.plot(subplots=True)
plt.show()

输出为:

df 的四列分别放在一个图上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 折线图|绘制 df 全部列的折线图
# 同时指定 画布大小  标题 显示网格线 x轴标签 y轴标签 轴字体大小
df.plot(figsize=(10, 6), # 画布大小 
        title='标题',  # 标题
        grid=True,  # 显示网格线
        xlabel='时间',  # x轴标签
        ylabel='数量', # y轴标签
        fontsize = 13) # 字体大小
# plt.legend(loc=4) # 指定图例的位置
plt.show()

输出为:

1.4 绘制折线图-双y轴

折线图–双y轴 A、C、D使用一个y轴,B使用一个y轴

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 折线图|双y轴
# ACD使用一个y轴,B使用一个y轴
ax = df.plot(secondary_y=['A', 'C', 'D'], 
             figsize=(10, 6), # 画布大小 
             title='标题',  # 标题
             grid=True,  # 显示网格线
             xlabel='时间',  # x轴标签
             # ylabel='数量', # y轴标签 左侧的y轴
             fontsize = 13) # 字体大小
ax.right_ax.set_ylabel('ACD')  # 设置右边轴的标签

ax.legend(loc=2) # 右侧坐标轴的图例位于右上角

plt.legend(loc=1) # 左侧坐标轴的图例位于左上角
ax.set_ylabel('B')  # 设置左侧坐标轴的label
 
plt.show()

输出为:

2. 条形图

2.1 单行垂直/水平条形图

单行垂直/水平条形图 生成数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 生成数据
df2 = pd.DataFrame(np.random.rand(10, 4), columns=["a", "b", "c", "d"])
df2

输出为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kind = 'bar'表示垂直,若kind = 'barh'表示为水平
# 重新生成数据,并对使用条形图可视化 df2 的第 3 行
df2.iloc[2].plot(kind = 'bar', figsize=(10, 6))
plt.show()

输出为:

2.2 多行条形图

多行堆叠

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 多行,堆叠对应着着stacked=True 
df2.plot(kind = 'bar', figsize=(10, 6),stacked=True)
plt.show()

输出为:

3. 直方图

3.1 生成数据

生成数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 直方图|默认
# 重新生成数据 df3 ,并制作直方图
df3 = pd.DataFrame(
    {
        "a": np.random.randn(1000) + 1,
        "b": np.random.randn(1000),
        "c": np.random.randn(1000) - 1,
    },
    columns=["a", "b", "c"],
)
df3

输出为:

3.2 透明度/刻度/堆叠直方图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df3.plot(kind = 'hist', # 直方图
         figsize=(10, 6), # 画布大小
         alpha = 0.5, # 透明度
         bins = 20, # 刻度
         stacked=True # 是否堆叠
        )
plt.show()

输出为:

3.3 拆分子图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 将3个直方图拆分为3个子图
df3.diff().hist(alpha=0.5, bins=20, figsize=(10, 6))
plt.show()

输出为:

4. 散点图

4.1生成数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 散点图|常规
# 重新生成数据 df4 ,并制作散点图,X轴为 a,Y轴为 b

df4 = pd.DataFrame(np.random.rand(50, 4), columns=["a", "b", "c", "d"])

df4["species"] = pd.Categorical(
    ["setosa"] * 20 + ["versicolor"] * 20 + ["virginica"] * 10
)
df4

输出为:

4.2 绘制大小不一的散点图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# s=df4["c"] * 200 让散点的大小随着值变化
df4.plot.scatter(x="a", y="b", figsize=(8, 6), s=df4["c"] * 200)
plt.show()

输出为:

4.3 设置渐变色/边缘/边缘宽度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df4.plot.scatter(x="a", # x轴
                 y="b", # y轴 
                 c="c", # 渐变色
                 figsize=(8, 6), # 画布大小 
                 marker='o', # 标记点样式
                 s=100,  # 点大小
                 linewidths=1, # 新的宽度
                 alpha=0.8,  # 透明度
                 edgecolors='black' # 边缘演示
                )

plt.show()

输出为:

4.4 绘制多组散点图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ax = df4.plot.scatter(x="a", y="b", color="DarkBlue", label="Group 1", figsize=(8, 6), marker='o',
                 s=80, linewidths=1, alpha=0.8, edgecolors='black')

df4.plot.scatter(x="c", y="d", color="DarkGreen", label="Group 2", ax=ax, figsize=(8, 6), marker='o',
                 s=80, linewidths=1, alpha=0.8, edgecolors='black');

输出为:

4.5 六边形箱型图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 如果数据太密集而无法单独绘制每个点,可使用六边形箱型图。
# 重新生成数据 df7,并使用 hexbin 图进行可视化

df7 = pd.DataFrame(np.random.randn(1000, 2), columns=["a", "b"])
df7["b"] = df7["b"] + np.arange(1000)
df7

输出为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    a	         b
0	-0.586607	-1.120616
1	-3.178678	1.180406
2	-2.113078	1.851595
3	-0.786777	1.880154
4	-0.597641	4.378188
...	...	...
995	-1.197119	995.413693
996	0.642450	996.515158
997	-1.157304	995.689765
998	0.874421	996.710751
999	-0.721021	997.697448
1000 rows × 2 columns

绘制六边形箱型图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df7.plot.hexbin(x="a", y="b", gridsize=25, figsize=(8, 6));

输出为:

5. 箱线图

5.1 生成数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 箱线图
df5 = pd.DataFrame(np.random.rand(10, 5), columns=["A", "B", "C", "D", "E"])
df5

输出为:

5.2 箱线图/颜色/标记

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
color = {
    "boxes": "DarkGreen",
    "whiskers": "DarkOrange",
    "medians": "DarkBlue",
    "caps": "Gray",
}

df5.plot.box(color=color, # 指定颜色
             sym="r+", # 标记
             # vert=False, # 水平箱型图
             figsize=(8, 6) # 画布大小
            ) 
plt.show()

输出为:

6. 面积图

6.1 生成数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df6 = pd.DataFrame(np.random.rand(10, 4), columns=["a", "b", "c", "d"])
df6

输出为:

6.2 绘制面积图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df6.plot.area(figsize=(8, 6),alpha = 0.7)
plt.show()

输出为:

7.其它图

7.1 密度曲线图

生成数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df8 = pd.Series(np.random.randn(1000))
df8

输出为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0      0.618861
1      1.634446
2      0.498904
3     -0.699357
4      0.686841
         ...   
995   -0.011310
996    2.153381
997   -0.723418
998   -0.324056
999    2.881972
Length: 1000, dtype: float64

绘制密度曲线图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df8.plot(kind='kde', figsize=(8, 6))
plt.show()

输出为:

7.2 绘图主题

通过 seaborn 来修改绘图主题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import seaborn as sns
sns.set_palette("pastel", 8) # "Blues_r" "magma"
df6.plot.area(figsize=(8, 6),alpha = 0.7)
plt.show()

输出为:

8. 总结

关于pandas的可视化的用法还有很多,这里不再拓展,但还是建议使用matplotlib,seaborn等库完成绘图。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
pandas 图形可视化大全
plot()的参数设置subplots=True即可自动对dataframe数据生成子图的可视化图形。
Python数据科学
2023/08/29
2640
pandas 图形可视化大全
『数据可视化』一文掌握Pandas可视化图表
今天简单介绍一下Pandas可视化图表的一些操作,Pandas其实提供了一个绘图方法plot(),可以很方便的将Series和Dataframe类型数据直接进行数据可视化。
可以叫我才哥
2021/08/05
8.4K0
数据可视化分析工具:Matplotlib
绘图是数据分析工作中的重要一环,是进行探索过程的一部分。Matplotlib是当前用于数据可视化的最流行的Python工具包之一,它是一个跨平台库,用于根据数组中的数据制作2D图,主要用于绘制一些统计图形,例如散点图、条形图、折线图、饼图、直方图、箱型图等。
用户7569543
2021/06/24
2K0
数据可视化分析工具:Matplotlib
五分钟入门数据可视化
在数据科学中,有多种工具可以进行可视化。在本文中,我(毛利)展示了使用Python来实现的各种可视化图表。
润森
2019/11/15
2.7K0
Python 数据可视化,常用看这一篇就够了
如果你想要用 Python 进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅一目了然,而且更容易被解读。
全栈程序员站长
2022/09/07
2.1K0
学会这7个绘图工具包,Matplotlib可视化也没那么难
绘图是数据分析工作中的重要一环,是探索过程的一部分。Matplotlib是当前用于数据可视化的最流行的Python包之一,本文主要介绍数据可视化分析工具:Matplotlib。
前端皮皮
2021/05/18
3K0
学会这7个绘图工具包,Matplotlib可视化也没那么难
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
导读:绘图是数据分析工作中的重要一环,是探索过程的一部分。Matplotlib是当前用于数据可视化的最流行的Python包之一,本文主要介绍数据可视化分析工具:Matplotlib。
IT阅读排行榜
2021/06/01
6.8K0
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
Python数据分析实战(3)Python实现数据可视化
数据可视化是指将数据放在可视环境中、进一步理解数据的技术,可以通过它更加详细地了解隐藏在数据表面之下的模式、趋势和相关性。
cutercorley
2020/08/31
4.6K0
你知道怎么用Pandas绘制带交互的可视化图表吗?
之前咱们介绍过Pandas可视化图表的绘制《『数据可视化』一文掌握Pandas可视化图表》,不过它是依托于matplotlib,因此无法进行交互。但其实,在Pandas的0.25.0版本之后,提供了一些其他绘图后端,其中就有我们今天要演示的主角基于Bokeh!
可以叫我才哥
2021/09/24
3.8K0
Pandas可视化详解 | 轻松玩转Pandas(12)
数据分析的结果不仅仅只是你来看的,更多的时候是给需求方或者老板来看的,为了更直观地看出结果,数据可视化是必不可少的一个环节。这里带大家来看下一些常用的图形的画法。
abs_zero
2018/09/25
2.7K0
Pandas可视化详解 | 轻松玩转Pandas(12)
Python数据可视化的10种技能
如果你想要用 Python 进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅一目了然,而且更容易被解读。同样在数据分析得到结果之后,我们还需要用到可视化技术,把最终的结果呈现出来。
MachineLP
2019/05/26
2.8K0
Python 数据分析(四):Pandas 进阶
我们在上一篇文章初识 Pandas中已经对 Pandas 作了一些基本介绍,本文我们进一步来学习 Pandas 的一些使用。
Python小二
2020/08/18
7620
Python 数据分析(四):Pandas 进阶
数据可视化:认识Matplotlib
数据经过NumPy和Pandas的计算,最终得到了我们想要的数据结论,但是这些数据结论并不直观,所以想要把数据分析的结论做到可视化,让任何其他人看起来毫无压力,那么Matplotlib将派上用场。
马拉松程序员
2023/09/02
2790
数据可视化:认识Matplotlib
pandas、matplotlib、Numpy模块的简单学习
pandas是BSD许可的开源库,为Python编程语言提供了高性能,易于使用的数据结构和数据分析工具。
GH
2022/05/10
1.1K0
pandas、matplotlib、Numpy模块的简单学习
数据分析之Pandas快速图表可视化各类操作详解
一般我们做数据挖掘或者是数据分析,再或者是大数据开发提取数据库里面的数据时候,难免只能拿着表格数据左看右看,内心总是希望能够根据自己所想立马生成一张数据可视化的图表来更直观的呈现数据。而当我们想要进行数据可视化的时候,往往需要调用很多的库与函数,还需要数据转换以及大量的代码处理编写。这都是十分繁琐的工作,确实只为了数据可视化我们不需要实现数据可视化的工程编程,这都是数据分析师以及拥有专业的报表工具来做的事情,日常分析的话我们根据自己的需求直接进行快速出图即可,而Pandas正好就带有这个功能,当然还是依赖matplotlib库的,只不过将代码压缩更容易实现。下面就让我们来了解一下如何快速出图。
fanstuck
2024/01/25
4782
数据分析之Pandas快速图表可视化各类操作详解
Pandas-25.可视化
Pandas-25.可视化 用matplotlib库的plot()方法实现简单的可视化 df = pd.DataFrame(np.random.randn(10,4),index=pd.date_ra
悠扬前奏
2019/05/29
6550
这40个Python可视化图表案例,强烈建议收藏!
不过有些小伙伴也会遇到不少问题,比如选择何种图表,以及如何制作,代码如何编写,这些都是问题!
小F
2021/09/14
4.3K0
干货案例 | Pandas数据可视化怎么做?
数据可视化可以让我们很直观的发现数据中隐藏的规律,察觉到变量之间的互动关系,可以帮助我们更好的给他人解释现象,做到一图胜千文的说明效果。
朱小五
2020/04/27
2.7K0
干货案例 | Pandas数据可视化怎么做?
数据分析 ——— pandas可视化(六)
这篇文章我们进行pandas可视化化的操作, 在这里我只是简单画几个图,表面pandas也是可以用来画图的,后期会在更新matlab等数据可视化的python库的。
andrew_a
2019/08/26
8200
数据分析 ——— pandas可视化(六)
Python中最常用的 14 种数据可视化类型的概念与代码
收集数据后,需要对其进行解释和分析,以深入了解数据所蕴含的深意。而这个含义可以是关于模式、趋势或变量之间的关系。
数据STUDIO
2022/02/24
9.8K0
Python中最常用的 14 种数据可视化类型的概念与代码
推荐阅读
相关推荐
pandas 图形可视化大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验