首页 > 其他分享 >【6.0】Pandas绘图

【6.0】Pandas绘图

时间:2023-09-24 17:03:09浏览次数:38  
标签:plot plt df 绘图 pd 6.0 np import Pandas

【一】Pandas绘图

  • Pandas 在数据分析、数据可视化方面有着较为广泛的应用,Pandas 对 Matplotlib 绘图软件包的基础上单独封装了一个plot()接口,通过调用该接口可以实现常用的绘图操作。
    • 本节我们深入讲解一下 Pandas 的绘图操作。
  • Pandas 之所以能够实现了数据可视化,主要利用了 Matplotlib 库的 plot() 方法,它对 plot() 方法做了简单的封装,因此您可以直接调用该接口。
  • 下面看一组简单的示例:
  • 在使用 df.plot() 绘制DataFrame的时候,Jupyter Notebook中的输出会自动显示图形,但在其他Python环境中,需要使用 plt.show() 来显示图形。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 创建包含时间序列的数据
df = pd.DataFrame(np.random.randn(8, 4), index=pd.date_range('2/1/2020', periods=8), columns=list('ABCD'))
df.plot()

# 显示图形
plt.show()

pandas matplotlib

  • 如上图所示,如果行索引中包含日期,Pandas 会自动调用 gct().autofmt_xdate() 来格式化 x 轴。

  • 除了使用默认的线条绘图外,您还可以使用其他绘图方式,如下所示:

    • 柱状图:bar() 或 barh()

    • 直方图:hist()

    • 箱状箱:box()

    • 区域图:area()

    • 散点图:scatter()

  • 通过关键字参数kind可以把上述方法传递给 plot()。

【二】柱状图

【1】创建一个柱状图

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.rand(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
# 或使用df.plot(kind="bar")
df.plot.bar()
plt.show()

image-20230924153946247

【2】生成柱状堆叠图

  • 通过设置参数stacked=True可以生成柱状堆叠图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.rand(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
df.plot(kind="bar", stacked=True)
# 或者使用df.plot.bar(stacked="True")
plt.show()

image-20230924154033297

【3】绘制水平柱状图

  • 如果要绘制水平柱状图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
print(df)
df.plot.barh(stacked=True)
plt.show()
          a         b         c         d
0  0.206361  0.883052  0.357841  0.183864
1  0.522382  0.333295  0.732108  0.845969
2  0.003440  0.999539  0.106514  0.116675
3  0.641142  0.274003  0.809550  0.409052
4  0.151516  0.646845  0.631517  0.718224
5  0.765353  0.463659  0.031836  0.410328
6  0.612120  0.626753  0.978856  0.291884
7  0.887875  0.677754  0.923422  0.640533
8  0.909638  0.099994  0.012314  0.217578
9  0.664750  0.980422  0.446866  0.246213

image-20230924154120613

【三】直方图

  • plot.hist() 可以实现绘制直方图,并且它还可以指定 bins(构成直方图的箱数)。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({'A': np.random.randn(100) + 2, 'B': np.random.randn(100), 'C':
    np.random.randn(100) - 2}, columns=['A', 'B', 'C'])
print(df)
# 指定箱数为15
df.plot.hist(bins=15)
plt.show()
           A         B         C
0   0.932241  0.613884 -1.782551
1   1.176741  1.986815 -2.293783
2   1.779891 -1.010581 -2.091620
3   3.647378  0.419567 -1.185410
4   4.215329 -0.436417 -2.658204
..       ...       ...       ...
95  1.985154  0.902845 -3.010176
96  1.611433 -0.678580 -2.922049
97  0.780115  0.330687 -0.421953
98  2.688825  0.717411 -1.943388
99  1.636895  0.444966 -1.473589

[100 rows x 3 columns]

image-20230924154309171

  • 给每一列数据都绘制一个直方图,需要使以下方法
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({'A': np.random.randn(100) + 2, 'B': np.random.randn(100), 'C':
    np.random.randn(100) - 2, 'D': np.random.randn(100) + 3}, columns=['A', 'B', 'C', 'D'])
# 使用diff绘制
df.diff().hist(color="r", alpha=0.5, bins=15)
plt.show()

image-20230924154347977

【四】箱型图

  • 通过调用 Series.box.plot() 、DataFrame.box.plot() 或者 DataFrame.boxplot() 方法来绘制箱型图,它将每一列数据的分布情况,以可视化的图像展现出来。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])
df.plot.box()
plt.show()

image-20230924154441771

【五】区域图

  • 您可以使用 Series.plot.area() 或 DataFrame.plot.area() 方法来绘制区域图。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.rand(5, 4), columns=['a', 'b', 'c', 'd'])
df.plot.area()
plt.show()

image-20230924154616811

【六】散点图

  • 使用 DataFrame.plot.scatter() 方法来绘制散点图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.rand(30, 4), columns=['a', 'b', 'c', 'd'])
df.plot.scatter(x='a', y='b')
plt.show()

image-20230924154701376

【七】饼状图

  • 饼状图可以通过 DataFrame.plot.pie() 方法来绘制。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(3 * np.random.rand(4), index=['go', 'java', 'c++', 'c'], columns=['L'])
df.plot.pie(subplots=True)
plt.show()

image-20230924154745997

标签:plot,plt,df,绘图,pd,6.0,np,import,Pandas
From: https://www.cnblogs.com/dream-ze/p/17726183.html

相关文章

  • 【Pandas笔记总结】
    【一】Pandos初识Pandas是什么Pandas主要特点Pandas主要优势Pandas内置数据结构Pandas下载与安装【二】PandasSeries入门PandasSeries是什么PandasSeries创建PandasSeries访问PandasSeries常用属性PandasSeries常用方法【三】PandasDataFrame入门P......
  • 【5.0】Pandas描述性统计
    【一】PythonPandas描述性统计描述统计学(descriptivestatistics)是一门统计学领域的学科,主要研究如何取得反映客观现象的数据,并以图表形式对所搜集的数据进行处理和显示,最终对数据的规律、特征做出综合性的描述分析。Pandas库正是对描述统计学知识完美应用的体现,可以说如果没......
  • 【4.0】Pandas Panel三维数据结构
    【一】三维数据结构Panel结构也称“面板结构”,它源自于PanelData一词,翻译为“面板数据”。如果您使用的是Pandas0.25以前的版本,那么您需要掌握本节内容,否则,作为了解内容即可。自Pandas0.25版本后,Panel结构已经被废弃。Panel是一个用来承载数据的三维数据结构,它......
  • 【8.0】Pandas和NumPy的比较
    【一】引入我们知道Pandas是在NumPy的基础构建而来因此,熟悉NumPy可以更加有效的帮助我们使用Pandas。NumPy主要用C语言编写因此,在计算还和处理一维或多维数组方面,它要比Python数组快得多。关于NumPy的学习,可以参考《PythonNumPy教程》。【二】创建数组数......
  • 解决:[email protected] requires a peer of node-sass@^4.0.0 but none is installed.
    参考:https://blog.csdn.net/hancoder/article/details/113821646去https://github.com/sass/npnode-sass或者https://github.com/sass/node-sass/releases都可以看到node和node-sass对应的版本信息npmconfigsetregistryhttp://registry.npm.taobao.org/npminstall......
  • Tecplot 360 EX 2020 工程绘图注册版下载 各个版本下载
    Tecplot是一款强大的数据可视化和分析工具。它具有多种数据格式支持、高质量的可视化、多维数据分析、数据交互和探索、自定义图表和报告、与其他工具的集成、大数据处理、广泛的应用领域等特点。通过使用Tecplot,科学家、工程师和研究人员可以更好地理解数据、发现模式和趋势,并做出......
  • gephi导入networkx:使用经纬度绘图并根据情景计算节点指标与网络整体指标(关联gephi导入
    此随笔为储存代码用首先展示gephi的json文件{"attributes":{"creator":"Gephi0.10.1"},"options":{"multi":false,"allowSelfLoops":true,"type":"undirected"},......
  • python的pandas库:合并数据
    在Pandas中,如果你有两个数据框(DataFrames),且它们的列数和列名都相同,你可以使用concat或merge函数将它们合并。以下是具体步骤:首先,导入Pandas库:importpandasaspd创建两个列数和列名都相同的数据框:df1=pd.DataFrame({'A':['A0','A1','A2','A3'],'B':[�......
  • 已解决pandas无法读取中文文件的问题
    已解决pandas无法读取中文文件的问题文章目录报错问题解决方法声明报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:pandas无法读取中文文件的问题文件有问题或者环境编码有问题!解决方法data=open(r'dataset......
  • 【小睿的ML之路】Seaborn-回归分析绘图
    %matplotlibinline#这是一个魔术命令,用于在JupyterNotebook中显示matplotlib生成的图形。importseabornassns#导入seaborn库,用于绘制统计图形。importnumpyasnp#导入numpy库,用于处理数值计算。importpandasaspd#导入pandas库,用于处理数据。impo......