• matplotlib学习笔记(三)


    柱状图

    柱状图用其每根柱子的长度表示值的大小,它们通常用来比较两组或多组值。下面的程序从文件中读入中国人口的年龄分布数据,并使用柱状图比较男性和女性的年龄分布。

    import numpy as np
    import matplotlib.pyplot as plt
    
    data = np.loadtxt("china_population.txt")
    width = (data[1,0] - data[0,0])*0.4 
    
    plt.figure(figsize=(8,5))
    
    plt.bar(data[:,0]-width, data[:,1]/1e7, width, color="b", label=u"男") 
    plt.bar(data[:,0], data[:,2]/1e7, width, color="r", label=u"女") 
    plt.xlim(-width, 100)
    plt.xlabel(u"年龄")
    plt.ylabel(u"人口(千万)")
    plt.legend()
    
    plt.show()
    

    读入的数据中,第0列为年龄,它将作为柱状图的横坐标。首先计算柱状图中每根柱子 的宽度,因为要在每个年龄段上绘制两根柱子,因此柱子的宽度应该小于年龄段的二分之 一。这里以年龄段的0.4倍作为柱子的宽度。

    bar()的第一个参数是柱状图的横坐标(柱子的左边缘)列表,第二个是纵坐标列表,后面是柱子的宽度和颜色。


     散点图

    使用plot()绘图时,如果指定样式参数为仅绘制数据点,那么所绘制的就是一幅散列图。 例如:

    plt.plot(np.random.random(100),np.random.random(100),"o")
    

     但是这种方法无法为每个点设置样式,scatter方法可以

    plt.figure(figsize=(8,4))
    x = np.random.random(100)
    y = np.random.random(100)
    plt.scatter(x, y, s=x*1000, c=y, marker=(5, 1), alpha=0.8, lw=2, facecolors="none")
    plt.xlim(0,1)
    plt.ylim(0,1)
    
    plt.show()
    

     效果图

    scatter()的前两个参数是数组,分别指定每个点的X轴和Y轴的坐标。s参数指定点的大 小,值和点的面积成正比。它可以是一个数,定所有点的大小;也可以是数组,分别对每个点指定大小。
    c参数指定每个点的颜色,可以是数值或数组。这里使用一维数组为每个点指定了一个数值。通过颜色映射表,每个数值都会与一个颜色相对应。默认的颜色映射表中蓝色与最小值对应,红色与最大值对应。当c参数是形状为(N,3)或(N,4)的二维数组时,则直接表示每个点的RGB颜色。
    marker参数设置点的形状,可以是个表示形状的字符串,也可以是表示多边形的两个元素的元组,第一个元素表示多边形的边数,

    第二个元素表示多边形的样式,取值范围为0、1、2、3。0表示多边形,1表示星形,2表示放射形,3表示忽略边数而显示为圆形。
    最后,通过alpha参数设置点的透明度,通过lw参数设置线宽,lw是line width的缩写。 facecolors参数为“none”时,表示散列点没有填充色。

  • 相关阅读:
    idea 编译内存溢出
    版本兼容问题 用于数据存储的持久化
    java8 函数接口
    akka 的集群访问方式
    Akka Cluster Sharding
    讨厌的adb占用
    安卓编译 签名包
    linux 系统的 cache 过大,解决方案
    kotlin 简单处理 回调参数 加?
    HTML CSS + DIV实现局部布局
  • 原文地址:https://www.cnblogs.com/wzyuan/p/9600020.html
Copyright © 2020-2023  润新知