zoukankan      html  css  js  c++  java
  • Matplotlib学习---用matplotlib画阶梯图(step plot)

    这里利用Nathan Yau所著的《鲜活的数据:数据可视化指南》一书中的数据,学习画图。

    数据地址:http://datasets.flowingdata.com/us-postage.csv 

    准备工作:先导入matplotlib和pandas,用pandas读取csv文件,然后创建一个图像和一个坐标轴

    import pandas as pd
    from matplotlib import pyplot as plt
    postage=pd.read_csv(r"http://datasets.flowingdata.com/us-postage.csv")
    fig,ax=plt.subplots()

    先来看看这个数据文件:

       Year  Price
    0  1991   0.29
    1  1995   0.32
    2  1999   0.33
    3  2001   0.34
    4  2002   0.37
    5  2006   0.39
    6  2007   0.41
    7  2008   0.42
    8  2009   0.44
    9  2010   0.44

    这个数据很简单,展示的是从1991年-2010年美国邮费的变化。

    让我们来画一个阶梯图,展现邮费的变化过程。

    阶梯图: ax.step(x,y)

    代码如下:

    import pandas as pd
    from matplotlib import pyplot as plt
    postage=pd.read_csv(r"http://datasets.flowingdata.com/us-postage.csv")
    fig,ax=plt.subplots(figsize=(10,4))
    
    ax.step(postage["Year"],postage["Price"],where='post')
    ax.set_title("US Postage Fee") #设置标题
    ax.set_xticks([i for i in postage["Year"]]) #设置x轴刻度
    ax.set_yticks([]) #去除y轴刻度
    #去除边框
    ax.spines["top"].set_visible(False)
    ax.spines["bottom"].set_visible(False)
    ax.spines["left"].set_visible(False)
    ax.spines["right"].set_visible(False)
    #添加文字注释
    for i,j in zip(postage["Year"],postage["Price"]):
        ax.text(x=i,y=j+0.003,s=j)
    fig.tight_layout()
    
    plt.show()

    图像如下:

  • 相关阅读:
    JDBC与JAVA数据库编程
    Java中的网络编程
    OracleDBA之表管理
    OracleDBA之用户管理
    OracleDBA之数据库管理
    Java中的多线程
    JavaSE高级之GUI编程
    JavaSE高级之集合类
    Java面向对象练习
    Java基本语法练习
  • 原文地址:https://www.cnblogs.com/HuZihu/p/9511993.html
Copyright © 2011-2022 走看看