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()

    图像如下:

  • 相关阅读:
    Retrofit的使用
    解决Android Studio在Ubuntu上出现“sdk/platform-tools/adb: error=2, No such file or directory”的方法
    safair浏览器页面局部滑动问题
    App网络测试
    App测试理论简介
    JS -- 流程控制语句
    JS -- DOM(文档对象模型)
    JS -- 操作符和数组
    JS -- 基础语法1
    JS -- JavaScript简介
  • 原文地址:https://www.cnblogs.com/HuZihu/p/9511993.html
Copyright © 2011-2022 走看看