1. 程式人生 > >資料視覺化神器matplotlib學習之路(一)

資料視覺化神器matplotlib學習之路(一)

直接上程式碼吧,說明寫在備註就好了,這次主要學習一下基本的畫圖方法和常用的圖例圖示等

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()

這裡的方法稍微有點麻煩,折騰了一下終於大功告成了!今天就到這兒,下次準備學習一下更怎樣在圖中用文字和其它說明