資料視覺化神器matplotlib學習之路(一)
阿新 • • 發佈:2019-01-10
直接上程式碼吧,說明寫在備註就好了,這次主要學習一下基本的畫圖方法和常用的圖例圖示等
from matplotlib import pyplot as plt import numpy as np #這裡是最最基本的程式碼了 #x軸-2到2均分50個點 x = np.linspace(-2, 2, 50) y = x**2 plt.plot(x, y) plt.show()
下面要加一下元素和樣式了
from matplotlib import pyplot as plt import numpy as np x = np.linspace(-2, 2, 50) y = x**2 plt.xlim((-3,3))#設定x座標範圍 plt.ylim((0,5))#設定y座標範圍 plt.plot(x, y, linestyle='--',#線條的樣式 linewidth=2.0,#線條寬度 alpha=0.5,#透明度,數字越小越透明,範圍(0-1) marker='.',#每個點的樣式 color='r',#顏色 label='y=x**2'#圖例 ) #開啟圖例,不然plt.plot裡面的label屬性會無效 plt.legend( loc='upper right'#指定圖例位置,這裡是右上,預設為best會自動選擇最優的位置 ) plt.show()
到這裡,如果我們想要x軸刻度自由控制一下可以用plt.xticks來實現
from matplotlib import pyplot as plt import numpy as np x = np.linspace(-2, 2, 50) y = x**2 plt.xlim((-3,3))#設定x座標範圍 plt.ylim((0,5))#設定y座標範圍 plt.plot(x, y, linestyle='--',#線條的樣式 linewidth=2.0,#線條寬度 alpha=0.5,#透明度,數字越小越透明,範圍(0-1) marker='.',#每個點的樣式 color='r',#顏色 label='y=x**2'#圖例 ) #開啟圖例,不然plt.plot裡面的label屬性會無效 plt.legend( loc='upper right'#指定圖例位置,這裡是右上,預設為best會自動選擇最優的位置 ) new_xticks = np.linspace(-2, 2, 6) plt.xticks(new_xticks)#在-2到2之間平均顯示6個刻度 plt.show()
這裡x軸刻度就和之前發生一點變化,有時候不需要用具體數字而是一個文字標籤顯示,比如y軸0以上的為normal,2以上為good,4以上為very good,接下來就來實現一下
from matplotlib import pyplot as plt import numpy as np x = np.linspace(-2, 2, 50) y = x**2 plt.xlim((-3,3))#設定x座標範圍 plt.ylim((0,5))#設定y座標範圍 plt.plot(x, y, linestyle='--',#線條的樣式 linewidth=2.0,#線條寬度 alpha=0.5,#透明度,數字越小越透明,範圍(0-1) marker='.',#每個點的樣式 color='r',#顏色 label='y=x**2'#圖例 ) #開啟圖例,不然plt.plot裡面的label屬性會無效 plt.legend( loc='upper right'#指定圖例位置,這裡是右上,預設為best會自動選擇最優的位置 ) new_xticks = np.linspace(-2, 2, 6) plt.xticks(new_xticks)#在-2到2之間平均顯示6個刻度 plt.yticks([0, 2, 4], [r'$normal$', r'$good$', r'$very\ good$'])#前後對應上就好了,$包住的是調整預設字型 plt.show()
接下來就是對座標軸的處理了,我們想要移動座標,用方框的左邊和下班做y軸和x軸,右邊和上班把顏色去掉,然後移動一下x和y軸
from matplotlib import pyplot as plt import numpy as np x = np.linspace(-2, 2, 50) y = x**2 plt.xlim((-3,3))#設定x座標範圍 plt.ylim((0,5))#設定y座標範圍 plt.plot(x, y, linestyle='--',#線條的樣式 linewidth=2.0,#線條寬度 alpha=0.5,#透明度,數字越小越透明,範圍(0-1) marker='.',#每個點的樣式 color='r',#顏色 label='y=x**2'#圖例 ) #開啟圖例,不然plt.plot裡面的label屬性會無效 plt.legend( loc='upper right'#指定圖例位置,這裡是右上,預設為best會自動選擇最優的位置 ) new_xticks = np.linspace(-2, 2, 6) plt.xticks(new_xticks)#在-2到2之間平均顯示6個刻度 plt.yticks([0, 2, 4], [r'$normal$', r'$good$', r'$very\ good$'])#前後對應上就好了,$包住的是調整預設字型 gca = plt.gca() gca.spines['right'].set_color('none')#將影象方框右邊顏色取消 gca.spines['top'].set_color('none')#將影象方框上邊顏色取消 gca.xaxis.set_ticks_position('bottom')#x軸設為方框下邊 gca.yaxis.set_ticks_position('left')#y軸設為方框左邊 gca.spines['bottom'].set_position(('data', 1))#將方框下邊也就是x軸移動到y=1的位置 gca.spines['left'].set_position(('data', 0))#將方框左邊也就是y軸移動到x=0的位置 plt.show()
這裡的方法稍微有點麻煩,折騰了一下終於大功告成了!今天就到這兒,下次準備學習一下更怎樣在圖中用文字和其它說明