社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

涨姿势,Python 画图竟然还能这么整

Python绿色通道 • 2 年前 • 126 次点击  

↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包

大家好,我是龙哥!

今天来聊聊 Pandas 的几种绘图方式。

饼图

在画饼图的时候可以使用DataFrame.plot.pie()或Series.plot.pie()创建饼图。如果您的数据包含任何NaN,它们将被自动填充为0, 如果数据中有任何负值,将引发ValueError。 画饼图详细代码如下:


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

def craw_pie():

    series = pd.Series(3 * np.random.rand(4), index=["1""2""3""4"], name="series")
    series.plot.pie(figsize=(66));
    plt.show()

if __name__ == '__main__':
    craw_pie()

显示结果如下:

对于饼状图,最好使用正方形图形,即图形长宽比为1。您可以创建宽度和高度相等的图形,或者通过在返回的axes对象上调用ax.set_aspect('equal')来绘制后强制宽高比相等。

注意: 带DataFrame的饼图要求您通过y参数指定目标列,或者subplot =True。当指定y时,将绘制选定列的饼图。如果指定subplot =True,则将每个列的饼图绘制为子图。默认情况下,将在每个饼图中绘制一个图例; 指定legend=False来隐藏它。

例如:将每个列的饼图绘制为子图实例如下:


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

def draw_pie1():
    df = pd.DataFrame(
        3 * np.random.rand(42), index=["a""b""c""d"], columns=["x""y"])
    df.plot.pie(subplots=True, figsize=(84))
    plt.show()

if __name__ == '__main__':
    draw_pie1()

显示结果图如下:

根据上图显示可知,加了subplots=True参数后,图形显示的颜色代表在长方形图片中已展示出来。

如果要隐藏,加legend=False即可隐藏,实例如下:


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

def draw_pie1():
    df = pd.DataFrame(
        3 * np.random.rand(42), index=["a""b""c""d"], columns=["x""y"])
    df.plot.pie(subplots=True, figsize=(84), legend=False)
    plt.show()

if __name__ == '__main__':
    draw_pie1()

结果图如下:

咱们在绘画的时候也可以可以使用标签和颜色关键字来指定每个楔形的标签和颜色,例如:




    

def draw_pie2():
    series = pd.Series(3 * np.random.rand(4), index=["1""2""3""4"], name="series")
    series.plot.pie(
        labels=["A""B""C""D"],
        colors=["r""g""b""c"],
        autopct="%.2f",
        fontsize=20,
        figsize=(66),)
    plt.show()

if __name__ == '__main__':
    draw_pie2()

展示结果如下:

如果传递的值的总和小于1,matplotlib会画一个半圆。

实例如下:

def draw_pie3():
    series = pd.Series([0.1] * 4, index=["a""b""c""d"], name="series2")
    series.plot.pie(figsize=(66))
    plt.show()

if __name__ == '__main__':
    draw_pie3()

散射矩阵图

你可以使用 pandas.plotting 绘图板中的 scatter_matrix方法创建一个散点图矩阵,实例如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
def draw_pie4():

    df = pd.DataFrame(np.random.randn(10004), columns=["a""b""c""d"])

    scatter_matrix(df, alpha=0.2, figsize=(66), diagonal="kde")
    plt.show()

if __name__ == '__main__':
    draw_pie4()

显示结果图如下:

总结

今天的文章就到这里啦,希望今天的文章对大家有帮助!更多关于 Pandas 绘制图形的方法咱们下集见分晓,希望自己进步的同时也对大家有更大的用处,咱们下期见!




    




    
推荐阅读

  1. 再见了Python爬虫,商业分析已成气候!

  2. CentOS 将于年底终止!

  3. 最近给公司撸了一个可视化大屏。



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125354
 
126 次点击