1 認識Figure和Subplot
import matplotlib.pyplot as plt
matplotlib的圖像都位於Figure對象中
fg = plt.figure()
通過add_subplot創建subplot
ax1 = fg.add_subplot(1,2,1)
ax2 = fg.add_subplot(1,2,2)
設置坐標軸的范圍
plt.xlim((-1, 1))
plt.ylim((0, 3))
設置坐標軸的lable
matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)
plt.xlabel('橫軸:時間', fontproperties = 'SimHei', fontsize = 15, color = 'green') plt.ylabel('縱軸:振幅', fontproperties = 'SimHei', fontsize = 15)
plt.figure()的作用
如下例子中,plt.subplot()如果不加,則4個圖都在同一個figure對象匯總,而加上plt.subplot(),則每個圖分別在一個figure對象中
import matplotlib.pyplot as plt import pandas as pd from numpy.random import randn x = np.linspace(-1, 1, 50) y1 = 2 * x + 1 # plt.figure() ax1 = plt.subplot(4,2,1) ax1.plot(x, y1) y2 = x**2 # plt.figure() ax2 = plt.subplot(4,2,2) ax2.plot(x, y2) y3 = 2*x+1 # plt.figure() ax3 = plt.subplot(4,2,3)#plt.subplot(3,2,4) : 分成3行2列,共6個繪圖區域,在第4個區域繪圖。排序為行優先。也可 plt.subplot(324),將逗號省略。 ax3.plot(x, y3) y4 = x**2 # plt.figure() ax4 = plt.subplot(4,2,4) ax4.plot(x, y4) plt.show()
plt的常用函數
plt.scatter#(數據,點的大小) 繪制單個點 plt.show()# 顯示出來 plt.title #(名字,大小) plt.xlable() plt.ylable() plt.tick_params()#設置刻度的大小 plt.axis([0,1100,0,111000]) # 設置坐標軸的取值范圍 plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor='none', s=40) # 把顏色設置為一個動態的變量,並使用cmp高數pylot使用哪個顏色的映射 plt.savefig(“squares_plot.png”,bbox_inches = "tight")# 第一個參數指定要以什么樣的文件名保存圖表,第二個參數指定將圖標多余的空白區域裁掉 plt.axes().get_xaxis().set_visible(false)# 使x軸不可見 plt.figure(figsize = (10,6)) # 設置繪圖窗口的尺寸
plt的圖表函數
plt.plot(x,y , fmt) :繪制坐標圖
plt.boxplot(data, notch, position): 繪制箱形圖
plt.bar(left, height, width, bottom) : 繪制條形圖
plt.barh(width, bottom, left, height) : 繪制橫向條形圖
plt.polar(theta, r) : 繪制極坐標圖
plt.pie(data, explode) : 繪制餅圖
plt.scatter(x, y) :繪制散點圖
plt.hist(x, bings, normed) : 繪制直方圖
fig,axes = plt.subplots()
import numpy as np import matplotlib.pyplot as plt fig,axes = plt.subplots(2,3) plt.subplots_adjust(wspace=0,hspace=0)# wspace控制寬度百分比,hspace控制高度的百分比,用作subplot之間的距離
axes[1,2]
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 400) y = np.sin(x**2) fig,axes = plt.subplots(2,3) plt.subplots_adjust(wspace=0,hspace=0)# wspace控制寬度百分比,hspace控制高度的百分比,用作subplot之間的距離 axes[1,2].plot(x,y) plt.show()
顏色、標記、線型
詳見:API文檔
axes.plot(x,y,'g--')
Colors
Markers
Line Styles
刻度、標簽、圖例
plt.xlim() #返回當前的X軸的范圍 plt.xlim(0,10)#設置當前的X軸的范圍
修改X軸刻度
import numpy as np import matplotlib.pyplot as plt plt.figure() ax = plt.subplot() ax.plot(randn(1000).cumsum()) # ax.set_xticks([0,250,500,750,1000]) ax.set_xticklabels(['1w','2w','3w','4w','5w','6w','7w'],rotation=30,fontsize='small') ax.set_title('Test plot!') plt.show()
import numpy as np import matplotlib.pyplot as plt plt.figure() #創建figure對象 ax = plt.subplot() # 一張圖中 傳入多個元素,需要傳入label參數 ax.plot(randn(1000).cumsum(),'g--',label='180210.IB',) ax.plot(randn(1000).cumsum(),'c.',label='170201.IB',) ax.plot(randn(1000).cumsum(),'m:',label='180201.IB',) # ax.legend(loc='best') # 添加圖例(左上角那玩意) plt.legend(loc='best') # 添加圖例(左上角那玩意) ax.set_title('Test plot!') #設置圖標的標題 plt.savefig('D:\Test plot.svg') plt.savefig('D:\Test plot.pdf') plt.savefig('D:\Test plot.jpg') plt.savefig('D:\Test plot.png',dpi=400,bbox_inches = 'tight') #保存png格式,dpi 分辨率,bbox_inches 最小白邊 plt.show()