Cp1_FirstSteps_Matplotlib_Plotting

cp1_FirstSteps_p5

February 19, 2019

https://github.com/PacktPublishing/Matplotlib-3.0-Cookbook

 

In [1]: import matplotlib.pyplot as plt

In [2]: X = range(100)

           list(X)[:5]

Out[2]: [0, 1, 2, 3, 4]

 

In [3]: Y=[value **2 for value in X]

           Y[:5]

Out[3]: [0, 1, 4, 9, 16]

 

In [15]: plt.plot(X,Y)

Out[15]:

[<matplotlib.lines.Line2D at 0x5219b00>]

In [13]: plt.plot(X,Y)

             plt.show()

Out[13]:

 

In [1]: import math

           import matplotlib.pyplot as plt

In [24]: TList = range(100)              #$(the range() built-in function can only generate integer values)

             list(TList)[:5]

Out[24]: [0, 1, 2, 3, 4]

In [21]: XList = [ (2*math.pi)*r/len(TList) for r in TList  ] #x goes from 0 to 2*pi

             XList[:5]

Out[21]: [0.0, 0.06283185307179587, 0.12566370614359174,

               0.18849555921538758, 0.25132741228718347]

In [22]: YList = [math.sin(x) for x in X]

              YList[:5]

Out[22]: [0.0, 0.0634239196565645, 0.12659245357374926,

               0.18925124436041021, 0.2511479871810792]

In [23]: plt.plot(XList,YList)

             plt.show()

In [14]: import numpy as np

             import matplotlib.pyplot as plt

In [26]: #the X list is now a one-dimensional NumPy array with 100 evenly spaced values between 0 and 2 pi

             X = np.linspace(0,2*np.pi, 100) # compare to XList = [ (2*math.pi)*r/len(TList) for r in TList  ]

             X[:5]

Out[26]: array([0. , 0.06346652, 0.12693304, 0.19039955, 0.25386607])

In [27]: Y = np.sin(X)

             len(Y)

Out[27]: 100

In [28]: plt.plot(X,Y)

             plt.show()

 

In [29]: import numpy as np

             import matplotlib.pyplot as plt

In [30]: XList = np.linspace(-3,2,200)

            YList = XList**2 - 2*XList +1        #ploting Y= X^2 - 2X -1

In [31]: plt.plot(XList, YList)

            plt.show()

In [ ]:

In [32]: import numpy as np

             import matplotlib.pyplot as plt

In [33]: XList = np.linspace(0,2*np.pi, 100)

In [34]: Y_SinX = np.sin(XList)

             Y_CosX = np.cos(XList)

In [36]: plt.plot(XList,Y_SinX)

             plt.plot(XList,Y_CosX)

             plt.show()

In [ ]:

In [37]: import numpy as np

             import matplotlib.pyplot as plt

In [38]: def plot_slope(X,Y):

                    Xs = X[1:] - X[:-1] #X[:-1] excludes the last element

                    Ys = Y[1:] - Y[:-1]

                    plt.plot(X[1:], Ys/Xs)

In [42]: X= np.linspace(-3,3,100)

             X[1:]-X[:-1]

Out[42]:

array([0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606, 0.06060606])

In [43]: Y = np.exp(-X ** 2) # Y=e^(X ** 2)

             Y

Out[43]: array([1.23409804e-04, 1.76880405e-04, 2.51663004e-04, 3.55441898e-04, 4.98341956e-04, 6.93578905e-04, 9.58239105e-04, 1.31420010e-03, 1.78919918e-03, 2.41805111e-03, 3.24400753e-03, 4.32023947e-03, 5.71141054e-03, 7.49529149e-03, 9.76434838e-03, 1.26272156e-02, 1.62099440e-02, 2.06568943e-02, 2.61311262e-02, 3.28141244e-02, 4.09046897e-02, 5.06168338e-02, 6.21765240e-02, 7.58171567e-02, 9.17736782e-02, 1.10275332e-01, 1.31537081e-01, 1.55749843e-01, 1.83069765e-01, 2.13606872e-01, 2.47413509e-01, 2.84473089e-01, 3.24689734e-01, 3.67879441e-01, 4.13763397e-01, 4.61964082e-01, 5.12004693e-01, 5.63312339e-01, 6.15225287e-01, 6.67004372e-01, 7.17848463e-01, 7.66913636e-01, 8.13335512e-01, 8.56253976e-01, 8.94839317e-01, 9.28318712e-01, 9.56001871e-01, 9.77304662e-01, 9.91769594e-01, 9.99082148e-01, 9.99082148e-01, 9.91769594e-01, 9.77304662e-01, 9.56001871e-01, 9.28318712e-01, 8.94839317e-01, 8.56253976e-01, 8.13335512e-01, 7.66913636e-01, 7.17848463e-01, 6.67004372e-01, 6.15225287e-01, 5.63312339e-01, 5.12004693e-01, 4.61964082e-01, 4.13763397e-01, 3.67879441e-01, 3.24689734e-01, 2.84473089e-01, 2.47413509e-01, 2.13606872e-01, 1.83069765e-01, 1.55749843e-01, 1.31537081e-01, 1.10275332e-01, 9.17736782e-02, 7.58171567e-02, 6.21765240e-02, 5.06168338e-02, 4.09046897e-02, 3.28141244e-02, 2.61311262e-02, 2.06568943e-02, 1.62099440e-02, 1.26272156e-02, 9.76434838e-03, 7.49529149e-03, 5.71141054e-03, 4.32023947e-03, 3.24400753e-03, 2.41805111e-03, 1.78919918e-03, 1.31420010e-03, 9.58239105e-04, 6.93578905e-04, 4.98341956e-04, 3.55441898e-04, 2.51663004e-04, 1.76880405e-04, 1.23409804e-04])

In [45]: Ys = Y[1:] - Y[:-1]

             Ys

Out[45]: array([ 5.34706011e-05, 7.47825989e-05, 1.03778894e-04, 1.42900058e-04, 1.95236950e-04, 2.64660200e-04, 3.55960993e-04, 4.74999083e-04, 6.28851932e-04, 8.25956416e-04, 1.07623195e-03, 1.39117107e-03, 1.78388095e-03, 2.26905689e-03, 2.86286722e-03, 3.58272845e-03, 4.44695022e-03, 5.47423197e-03, 6.68299814e-03, 8.09056531e-03, 9.71214410e-03, 1.15596902e-02, 1.36406327e-02, 1.59565215e-02, 1.85016537e-02, 2.12617490e-02, 2.42127616e-02, 2.73199222e-02, 3.05371077e-02, 3.38066370e-02, 3.70595795e-02, 4.02166456e-02, 4.31897067e-02, 4.58839558e-02, 4.82006848e-02, 5.00406114e-02, 5.13076458e-02, 5.19129476e-02, 5.17790858e-02, 5.08440909e-02, 4.90651728e-02, 4.64218762e-02, 4.29184635e-02, 3.85853410e-02, 3.34793954e-02, 2.76831590e-02, 2.13027910e-02, 1.44649318e-02, 7.31255386e-03, 0.00000000e+00, -7.31255386e-03, -1.44649318e-02, -2.13027910e-02, -2.76831590e-02, -3.34793954e-02, -3.85853410e-02, -4.29184635e-02, -4.64218762e-02, -4.90651728e-02, -5.08440909e-02, -5.17790858e-02, -5.19129476e-02, -5.13076458e-02, -5.00406114e-02, -4.82006848e-02, -4.58839558e-02, -4.31897067e-02, -4.02166456e-02, -3.70595795e-02, -3.38066370e-02, -3.05371077e-02, -2.73199222e-02, -2.42127616e-02, -2.12617490e-02, -1.85016537e-02, -1.59565215e-02, -1.36406327e-02, -1.15596902e-02, -9.71214410e-03, -8.09056531e-03, -6.68299814e-03, -5.47423197e-03, -4.44695022e-03, -3.58272845e-03, -2.86286722e-03, -2.26905689e-03, -1.78388095e-03, -1.39117107e-03, -1.07623195e-03, -8.25956416e-04, -6.28851932e-04, -4.74999083e-04, -3.55960993e-04, -2.64660200e-04, -1.95236950e-04, -1.42900058e-04, -1.03778894e-04, -7.47825989e-05, -5.34706011e-05])

In [46]: Ys/(X[1:]-X[:-1])

Out[46]: array([ 0.00088226, 0.00123391, 0.00171235, 0.00235785, 0.00322141, 0.00436689, 0.00587336, 0.00783748, 0.01037606, 0.01362828, 0.01775783, 0.02295432, 0.02943404, 0.03743944, 0.04723731, 0.05911502, 0.07337468, 0.09032483, 0.11026947, 0.13349433, 0.16025038, 0.19073489, 0.22507044, 0.26328261, 0.30527729, 0.35081886, 0.39951057, 0.45077872, 0.50386228, 0.55780951, 0.61148306, 0.66357465, 0.71263016, 0.75708527, 0.7953113 , 0.82567009, 0.84657616, 0.85656364, 0.85435492, 0.8389275 , 0.80957535, 0.76596096, 0.70815465, 0.63665813, 0.55241002, 0.45677212, 0.35149605, 0.23867137, 0.12065714, 0. , -0.12065714, -0.23867137, -0.35149605, -0.45677212, -0.55241002, -0.63665813, -0.70815465, -0.76596096, -0.80957535, -0.8389275 , -0.85435492, -0.85656364, -0.84657616, -0.82567009, -0.7953113 , -0.75708527, -0.71263016, -0.66357465, -0.61148306, -0.55780951, -0.50386228, -0.45077872, -0.39951057, -0.35081886, -0.30527729, -0.26328261, -0.22507044, -0.19073489, -0.16025038, -0.13349433, -0.11026947, -0.09032483, -0.07337468, -0.05911502, -0.04723731, -0.03743944, -0.02943404, -0.02295432, -0.01775783, -0.01362828, -0.01037606, -0.00783748, -0.00587336, -0.00436689, -0.00322141, -0.00235785, -0.00171235, -0.00123391, -0.00088226])

In [48]: plt.plot(X,Y)

             plot_slope(X,Y)

             plt.show()

##################################

my_data.txt

0 0 
1 1 
2 4 

3 9
4 16 
5 25 
6 36 

##################################

In [49]: import matplotlib.pyplot as plt

In [54]: XList, YList=[], []

             for line in open('my_data.txt', 'r'):

                   values =[float(v) for v in line.split()]

                   XList.append(values[0]) #x-axis

                   YList.append(values[1]) #y-axis

In [55]: plt.plot(XList, YList)

             plt.show()

In [56]: import matplotlib.pyplot as plt

In [57]: with open('my_data.txt', 'r') as f:

             X, Y = zip( *[

                                       [float(s) for s in line.split()] for line in f

                                ] )  #2D-list, each element is a list in this 2D-list

In [58]: plt.plot(X,Y)

             plt.show()

In [59]: import matplotlib.pyplot as plt

            import numpy as np

In [60]: data = np.loadtxt('my_data.txt') #return 2D array or called full-blown matrices

In [61]: plt.plot(data[:,0], data[:,1])         #0-->columnIndex-->X- axis, 1-->columnIndex --> Y-axis

             plt.show()

##################################

'my_data.txt'

0 0 6
1 1 5
2 4 4
4 16 3
5 25 2
6 36 1

##################################

In [62]: import numpy as np

             import matplotlib.pyplot as plt

In [63]: data = np.loadtxt('my_data.txt')

             data.T

Out[63]: array([[ 0., 1., 2., 4., 5., 6.],

                          [ 0., 1., 4., 16., 25., 36.],

                          [ 6., 5., 4., 3., 2., 1.]])

In [67]: for columnList in data.T[1:]:

                  plt.plot(data[:,0], columnList)       # the len(columnList) == the number of curves

             plt.show()

In [68]: data

Out[68]: array([[ 0., 0., 6.], [ 1., 1., 5.], [ 2., 4., 4.], [ 4., 16., 3.], [ 5., 25., 2.], [ 6., 36., 1.]])

In [ ]:

In [69]: import numpy as np

             import matplotlib.pyplot as plt

In [70]: data = np.random.rand(1024,2)                 #[0,1] interval,      (row,column):(1024,2)

In [71]: plt.scatter(data[:,0], data[:,1])

             plt.show()

In [73]: data.shape

Out[73]: (1024, 2)

In [ ]:

In [74]: import numpy as np

             import matplotlib.pyplot as plt

In [75]: data = [5., 25., 50, 20]

In [79]: plt.bar( range(len(data)), data )

             plt.show()

In [80]: range(len(data))

Out[80]: range(0, 4)

In [81]: plt.barh( range(len(data)), data)

             plt.show()

In [ ]:

In [82]: import matplotlib.pyplot as plt

In [83]: data = [5,25,50,20]

In [84]: plt.bar( range(len(data)), data, width=1)

             plt.show()

In [87]: plt.barh( range(len(data)), data, height=1)

             plt.show()

In [89]:

In [ ]:

17

In [90]: import numpy as np

import matplotlib.pyplot as plt

In [96]: data = [ [5,25,50,20], [4,23,51,17], [6,22,52,19] ]

             XList = np.arange(4)

In [97]: w=0.25

             plt.bar(XList+w*0, data[0], color='b', width=w)  # center the first blue bar to 0.0

             plt.bar(XList+w*1, data[1], color='g', width=w) #width=w  is the gap

             plt.bar(XList+w*2, data[2], color='r', width=w)  # center the first red bard to 0.5

             plt.show()

In [ ]:

In [99]: import numpy as np

             import matplotlib.pyplot as plt

In [100]: data = [[5,25,50,20], [4,23,51,17], [6,22,52,19]]

               color_list=['b','g','r']

               gap = .8/len(data)   

In [101]: for i, row in enumerate(data): #the iterator enumerate returns both the current row and its i

                     X = np.arange(len(row))

                     plt.bar(X+i*gap, row, width=gap, color = color_list[ i%len(color_list) ]) #i%len(color_list) if len(data)>3

               plt.show()

In [ ]:

In [102]: import matplotlib.pyplot as plt

In [106]: A = [5,30,45,22] B = [5,25,50,20]

               XList= range(len(A))

In [107]: plt.bar(XList, A, color='b')

               plt.bar(XList, B, color='r', bottom=A) #default width: 0.8 plt.show()

In [ ]:

In [108]: import numpy as np

               import matplotlib.pyplot as plt

In [109]: A = np.array([5,30,45,22])

               B = np.array([5,20,50,20])

               C = np.array([1,2,1,1])

               xList=np.arange(4)

In [110]: plt.bar(xList, A, color='b')

               plt.bar(xList, B, color='y', bottom=A)

               plt.bar(xList, C, color='r', bottom=A+B)

               plt.show()

20

In [ ]:

In [111]: import numpy as np

              import matplotlib.pyplot as plt

In [112]: data=np.array([ [5,30,45,22], [5,20,50,20], [1, 2, 1, 1] ])

               colorList = ['b', 'y','r']

               xList = np.arange(data.shape[1]) #data.shape[1] return the number of columns

               for i in range(data.shape[0]): #axis=0 to remove row: sum by column

                         plt.bar(xList, data[i], bottom=np.sum(data[:i], axis=0), color=color_list[ i%len(color_lis

               plt.show()

21

In [ ]:

In [113]: import numpy as np

              import matplotlib.pyplot as plt

In [115]: women_pop = np.array([5,30,45,22])

               men_pop = np.array([5,25,50,20])

               xList= np.arange(4)

In [116]: plt.barh(xList, women_pop, color='r')

               plt.barh(xList, -men_pop, color='b')

               plt.show()

In [ ]:

In [117]: import matplotlib.pyplot as plt

In [118]: data = [5,25,50,20]

               plt.pie(data)

               plt.show()

23

In [ ]:

In [119]: import numpy as np

               import matplotlib.pyplot as plt

In [120]: xList = np.random.randn(1000)

In [121]: plt.hist(xList, bins=20)

               plt.show()

In [122]: plt.hist(xList, bins=50)

               plt.show()

In [ ]:

In [123]: import numpy as np

               import matplotlib.pyplot as plt

In [124]: data = np.random.randn(100)

In [125]: plt.boxplot(data) #The red bar is the median of the distribution.

               plt.show()

25

In [126]: import numpy as np

               import matplotlib.pyplot as plt

In [127]: data = np.random.randn(100,5)

In [128]: plt.boxplot(data)

               plt.show()

26

In [ ]:

In [130]: import numpy as np

               import matplotlib.pyplot as plt

               import matplotlib.tri as tri

In [131]: data = np.random.rand(100,2)

               triangles= tri.Triangulation(data[:,0], data[:,1])

In [132]: plt.triplot(triangles)

               plt.show()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值