zoukankan      html  css  js  c++  java
  • python库Matplotlib(一)

    参考链接

    1、简单的x-y图绘制

    1 import matplotlib.pyplot as plt
    2 plt.plot([1,2,3,4],[5,7,4,9]) #[1,2,3,4]是x轴,[5,7,4,9]是y轴
    3 plt.show()

    2、图例、标题、标签

     1 import matplotlib.pyplot as plt
    #坐标轴
    2 x = [1,2,3] 3 y = [5,7,4] 4 x2 = [1,2,3] 5 y2 = [10,14,12]
    #给线条添加标签
    6 plt.plot(x, y, label='First Line') 7 plt.plot(x2, y2, label='Second Line')
    #给坐标轴和图形添加标签
    8 plt.xlabel('Plot Number') 9 plt.ylabel('Important var') 10 plt.title('Interesting Graph Check it out')
    #显示图形
    11 plt.legend() 12 plt.show()

    结果显示如图所示

     3、条形图和直方图

      条形图

     1 import matplotlib.pyplot as plt
     2 
     3 #绘制直方图,并且添加标签,设定第二个直方图为绿色
     4 plt.bar([1,3,5,7,9],[5,2,7,8,2], label="Example one")
     5 plt.bar([2,4,6,8,10],[8,6,2,5,6], label="Example two", color='g')
     6 plt.legend()
     7 
     8 #个x、y轴和图形添加标签
     9 plt.xlabel('bar number')
    10 plt.ylabel('bar height')
    11 plt.title('Epic Graph
    Another Line! Whoa')
    12 
    13 #显示图形
    14 plt.show()

       直方图

     1 import matplotlib.pyplot as plt
     2 
     3 #直方图的坐标
     4 population_ages = [22,55,62,45,21,22,34,42,42,4,99,102,110,120,121,122,130,111,115,112,80,75,65,54,44,43,42,48]
     5 
     6 bins = [0,10,20,30,40,50,60,70,80,90,100,110,120,130]
     7 
     8 #设定容器为bar类型,宽度为0.8
     9 plt.hist(population_ages, bins, histtype='bar', rwidth=0.8)
    10 
    11 
    12 plt.xlabel('x')
    13 plt.ylabel('y')
    14 plt.title('Interesting Graph
    Check it out')
    15 plt.legend()
    16 plt.show()

    直方图非常像条形图,倾向于通过将区段组合在一起来显示分布。结果如下

    4、散点图

      二维散点图

     1 import matplotlib.pyplot as plt
     2 
     3 x = [1,2,3,4,5,6,7,8]
     4 y = [5,2,4,2,1,4,5,2]
     5 
     6 plt.scatter(x,y, label='skitscat', color='k', s=25, marker="o")
     7 
     8 plt.xlabel('x')
     9 plt.ylabel('y')
    10 plt.title('Interesting Graph
    Check it out')
    11 plt.legend()
    12 plt.show()

    标记文档

     5、堆叠图

     1 import matplotlib.pyplot as plt
     2 
     3 #x轴和y轴数据
     4 days = [1,2,3,4,5]
     5 
     6 sleeping = [7,8,6,11,7]
     7 eating =   [2,3,4,3,2]
     8 working =  [7,8,7,2,2]
     9 playing =  [8,5,7,8,13]
    10 
    11 #设定格式
    12 plt.plot([],[],color='m', label='Sleeping', linewidth=5)
    13 plt.plot([],[],color='c', label='Eating', linewidth=5)
    14 plt.plot([],[],color='r', label='Working', linewidth=5)
    15 plt.plot([],[],color='k', label='Playing', linewidth=5)
    16 
    17 #画图
    18 plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k'])
    19 
    20 plt.xlabel('x')
    21 plt.ylabel('y')
    22 plt.title('Interesting Graph
    Check it out')
    23 plt.legend()
    24 plt.show()

    6、饼图

     1 import matplotlib.pyplot as plt
     2 
     3 slices = [7,2,2,13]
     4 activities = ['sleeping','eating','working','playing']
     5 cols = ['c','m','r','b']
     6 
     7 plt.pie(slices,
     8         labels=activities,
     9         colors=cols,
    10         startangle=90, #我们为饼图选择了 90 度角,这意味着第一个部分是一个竖直线条
    11         shadow= True,  
    12         explode=(0,0.1,0,0),  #我们将第二个切片拉出来,如果要拉出来第一个切片,则为(0.1,0,0,0)
    13         autopct='%1.1f%%')  #我们使用autopct,选择将百分比放置到图表上面。
    14 
    15 plt.title('Interesting Graph
    Check it out')
    16 plt.show()

    结果显示如图所示

    7、从文件中加载数据

      7.1使用CSV模块加载数据

    import matplotlib.pyplot as plt
    import csv
    
    x = []
    y = []
    
    with open('data.txt','r') as csvfile:
        plots = csv.reader(csvfile, delimiter=',')
        for row in plots:
            x.append(int(row[0]))  #第1列的数据作为x轴
            y.append(int(row[1]))  #第二列数据作为y轴
    
    plt.plot(x,y, label='Loaded from file!')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('Interesting Graph
    Check it out')
    plt.legend()
    plt.show()

    data.txt文件中的数据和显示结果如图所示

                                                                                                                                   

       7.2使用Numpy模块显示数据

     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 #加载数据
     5 x, y = np.loadtxt('data.txt', delimiter=',', unpack=True)
     6 plt.plot(x,y, label='Loaded from file!')
     7 
     8 #画图
     9 plt.xlabel('x')
    10 plt.ylabel('y')
    11 plt.title('Interesting Graph
    Check it out')
    12 plt.legend()
    13 plt.show()

     
  • 相关阅读:
    HDU-1527 取石子游戏
    HDU-1846 Brave Game
    HDU-1850 Being a Good Boy in Spring Festival
    HDU-2509 Be the Winner
    HDU-1907 John
    HDU-1969 Pie
    HDU-1501 Zipper
    HDU-2289 Cup
    最大子矩阵和
    HDU3466(01背包变种)
  • 原文地址:https://www.cnblogs.com/andrew-address/p/13048585.html
Copyright © 2011-2022 走看看