天天看點

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

1.二維繪圖

a. 一維資料集

用 Numpy ndarray 作為資料傳入 ply

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(10)

print "y = %s"% y

x = range(len(y))

print "x=%s"% x

plt.plot(y)

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

2.操縱坐标軸和增加網格及标簽的函數

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(10)

plt.plot(y.cumsum())

plt.grid(True) ##增加格點

plt.axis('tight') # 坐标軸适應資料量 axis 設定坐标軸

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(20)

plt.plot(y.cumsum())

plt.grid(True) ##增加格點

plt.xlim(-1,20)

plt.ylim(np.min(y.cumsum())- 1, np.max(y.cumsum()) + 1)

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(20)

plt.figure(figsize=(7,4)) #畫布大小

plt.plot(y.cumsum(),'b',lw = 1.5) # 藍色的線

plt.plot(y.cumsum(),'ro') #離散的點

plt.grid(True)

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple Plot')

plt.show()

b. 二維資料集

np.random.seed(2000)

y = np.random.standard_normal((10, 2)).cumsum(axis=0) #10行2列 在這個數組上調用cumsum 計算赝本資料在0軸(即第一維)上的總和

print y

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

1.兩個資料集繪圖

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(7,5))

plt.plot(y, lw = 1.5)

plt.plot(y, 'ro')

plt.grid(True)

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple plot')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

2.添加圖例 plt.legend(loc = 0)

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(7,5))

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,1], lw = 1.5, label = '2st')

plt.plot(y, 'ro')

plt.grid(True)

plt.legend(loc = 0) #圖例位置自動

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple plot')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

3.使用2個 Y軸(左右)fig, ax1 = plt.subplots() ax2 = ax1.twinx()

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

fig, ax1 = plt.subplots() # 關鍵代碼1 plt first data set using first (left) axis

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,0], 'ro')

plt.grid(True)

plt.legend(loc = 0) #圖例位置自動

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple plot')

ax2 = ax1.twinx() #關鍵代碼2 plt second data set using second(right) axis

plt.plot(y[:,1],'g', lw = 1.5, label = '2nd')

plt.plot(y[:,1], 'ro')

plt.legend(loc = 0)

plt.ylabel('value 2nd')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

4.使用兩個子圖(上下,左右)plt.subplot(211)

通過使用 plt.subplots 函數,可以直接通路底層繪圖對象,例如可以用它生成和第一個子圖共享 x 軸的第二個子圖.

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(7,5))

plt.subplot(211) #兩行一列,第一個圖

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,0], 'ro')

plt.grid(True)

plt.legend(loc = 0) #圖例位置自動

plt.axis('tight')

plt.ylabel('value')

plt.title('A simple plot')

plt.subplot(212) #兩行一列.第二個圖

plt.plot(y[:,1],'g', lw = 1.5, label = '2nd')

plt.plot(y[:,1], 'ro')

plt.grid(True)

plt.legend(loc = 0)

plt.xlabel('index')

plt.ylabel('value 2nd')

plt.axis('tight')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

5.左右子圖

有時候,選擇兩個不同的圖示類型來可視化資料可能是必要的或者是理想的.利用子圖方法:

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(10,5))

plt.subplot(121) #兩行一列,第一個圖

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,0], 'ro')

plt.grid(True)

plt.legend(loc = 0) #圖例位置自動

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('1st Data Set')

plt.subplot(122)

plt.bar(np.arange(len(y)), y[:,1],width=0.5, color='g',label = '2nc')

plt.grid(True)

plt.legend(loc=0)

plt.axis('tight')

plt.xlabel('index')

plt.title('2nd Data Set')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

c.其他繪圖樣式,散點圖,直方圖等

1.散點圖 scatter

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

plt.figure(figsize=(7,5))

plt.scatter(y[:,0],y[:,1],marker='o')

plt.grid(True)

plt.xlabel('1st')

plt.ylabel('2nd')

plt.title('Scatter Plot')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

2.直方圖 plt.hist

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

plt.figure(figsize=(7,5))

plt.hist(y,label=['1st','2nd'],bins=25)

plt.grid(True)

plt.xlabel('value')

plt.ylabel('frequency')

plt.title('Histogram')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

3.直方圖 同一個圖中堆疊

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

plt.figure(figsize=(7,5))

plt.hist(y,label=['1st','2nd'],color=['b','g'],stacked=True,bins=20)

plt.grid(True)

plt.xlabel('value')

plt.ylabel('frequency')

plt.title('Histogram')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

4.箱型圖 boxplot

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

fig, ax = plt.subplots(figsize=(7,4))

plt.boxplot(y)

plt.grid(True)

plt.setp(ax,xticklabels=['1st' , '2nd'])

plt.xlabel('value')

plt.ylabel('frequency')

plt.title('Histogram')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

5.繪制函數

from matplotlib.patches import Polygon

import numpy as np

import matplotlib.pyplot as plt

#1. 定義積分函數

def func(x):

return 0.5 * np.exp(x)+1

#2.定義積分區間

a,b = 0.5, 1.5

x = np.linspace(0, 2 )

y = func(x)

#3.繪制函數圖形

fig, ax = plt.subplots(figsize=(7,5))

plt.plot(x,y, 'b',linewidth=2)

plt.ylim(ymin=0)

#4.核心, 我們使用Polygon函數生成陰影部分,表示積分面積:

Ix = np.linspace(a,b)

Iy = func(Ix)

verts = [(a,0)] + list(zip(Ix, Iy))+[(b,0)]

poly = Polygon(verts,facecolor='0.7',edgecolor = '0.5')

ax.add_patch(poly)

#5.用plt.text和plt.figtext在圖表上添加數學公式和一些坐标軸标簽。

plt.text(0.5 *(a+b),1,r"$int_a^b f(x)mathrm{d}x$", horizontalalignment ='center',fontsize=20)

plt.figtext(0.9, 0.075,'$x$')

plt.figtext(0.075, 0.9, '$f(x)$')

#6. 分别設定x,y刻度标簽的位置。

ax.set_xticks((a,b))

ax.set_xticklabels(('$a$','$b$'))

ax.set_yticks([func(a),func(b)])

ax.set_yticklabels(('$f(a)$','$f(b)$'))

plt.grid(True)

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

2.金融學圖表 matplotlib.finance

1.燭柱圖 candlestick

#!/etc/bin/python

#coding=utf-8

import matplotlib.pyplot as plt

import matplotlib.finance as mpf

start = (2014, 5,1)

end = (2014, 7,1)

quotes = mpf.quotes_historical_yahoo('^GDAXI',start,end)

# print quotes[:2]

fig, ax = plt.subplots(figsize=(8,5))

fig.subplots_adjust(bottom = 0.2)

mpf.candlestick(ax, quotes, width=0.6, colorup='b',colordown='r')

plt.grid(True)

ax.xaxis_date() #x軸上的日期

ax.autoscale_view()

plt.setp(plt.gca().get_xticklabels(),rotation=30) #日期傾斜

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

2. plot_day_summary

該函數提供了一個相當類似的圖示類型,使用方法和 candlestick 函數相同,使用類似的參數. 這裡開盤價和收盤價不是由彩色矩形表示,而是由兩條短水準線表示.

#!/etc/bin/python

#coding=utf-8

import matplotlib.pyplot as plt

import matplotlib.finance as mpf

start = (2014, 5,1)

end = (2014, 7,1)

quotes = mpf.quotes_historical_yahoo('^GDAXI',start,end)

# print quotes[:2]

fig, ax = plt.subplots(figsize=(8,5))

fig.subplots_adjust(bottom = 0.2)

mpf.plot_day_summary(ax, quotes, colorup='b',colordown='r')

plt.grid(True)

ax.xaxis_date() #x軸上的日期

ax.autoscale_view()

plt.setp(plt.gca().get_xticklabels(),rotation=30) #日期傾斜

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

3.股價資料和成交量

#!/etc/bin/python

#coding=utf-8

import matplotlib.pyplot as plt

import numpy as np

import matplotlib.finance as mpf

start = (2014, 5,1)

end = (2014, 7,1)

quotes = mpf.quotes_historical_yahoo('^GDAXI',start,end)

# print quotes[:2]

quotes = np.array(quotes)

fig, (ax1, ax2) = plt.subplots(2, sharex=True, figsize=(8,6))

mpf.candlestick(ax1, quotes, width=0.6,colorup='b',colordown='r')

ax1.set_title('Yahoo Inc.')

ax1.set_ylabel('index level')

ax1.grid(True)

ax1.xaxis_date()

plt.bar(quotes[:,0] - 0.25, quotes[:, 5], width=0.5)

ax2.set_ylabel('volume')

ax2.grid(True)

ax2.autoscale_view()

plt.setp(plt.gca().get_xticklabels(),rotation=30)

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖

3.3D 繪圖

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib.pyplot as plt

stike = np.linspace(50, 150, 24)

ttm = np.linspace(0.5, 2.5, 24)

stike, ttm = np.meshgrid(stike, ttm)

print stike[:2]

iv = (stike - 100) ** 2 / (100 * stike) /ttm

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=(9,6))

ax = fig.gca(projection='3d')

surf = ax.plot_surface(stike, ttm, iv, rstride=2, cstride=2, cmap=plt.cm.coolwarm, linewidth=0.5, antialiased=True)

ax.set_xlabel('strike')

ax.set_ylabel('time-to-maturity')

ax.set_zlabel('implied volatility')

plt.show()

python cumsum_Python繪圖1.二維繪圖2.操縱坐标軸和增加網格及标簽的函數3.plt.xlim 和 plt.ylim 設定每個坐标軸的最小值和最大值4. 添加标題和标簽 plt.title, plt.xlabe, plt.ylabel 離散點, 線c.其他繪圖樣式,散點圖,直方圖等3.直方圖 同一個圖中堆疊4.箱型圖 boxplot5.繪制函數2.金融學圖表 matplotlib.finance3.3D 繪圖