7 matplotlib繪圖和Pygal可視化
- 7.1matplotlib的安裝和測試
- 7.2繪制基本圖形的指令
-
- 7.2.1折線圖
- 7.2.2散點圖
- 7.3設定圖像格式
- 7.4 Pygal的安裝
- 7.5可視化直方圖
-
- 7.5.1直方圖
7.1matplotlib的安裝和測試
安裝----- 在cmd中把路徑調整到python的安裝目錄(D:可以跳轉磁盤區,cd python可以跳轉到python的檔案夾),然後輸入python -m pip install matplotlib即可安裝最新版本的matplotlib。
測試----- cmd跳轉到python檔案夾,輸入import matplotlib 無錯誤即安裝成功。
7.2繪制基本圖形的指令
在使用前必須導入:[in1]import matplotlib [in2]import matplotlib.pyplot兩個包,代碼最後通過matplotlib.pyplot.show()顯示圖像。
7.2.1折線圖
折線圖基礎指令----- matplotlib.pyplot.plot(X坐标數組,Y坐标數組,其它屬性=……)
例如:繪制平方曲線圖
#繪制平方曲線
import matplotlib
import matplotlib.pyplot
value_x=list(range(1,100))
value_y=[x**2 for x in value_x]
matplotlib.pyplot.plot(value_x,value_y)
scat_value_x=list(range(20,100,20))
scat_value_y=[x**2 for x in scat_value_x]
matplotlib.pyplot.scatter(scat_value_x,scat_value_y)
matplotlib.pyplot.title("y=sqrt(x)",fontsize=15)
matplotlib.pyplot.xlabel("x",fontsize=15)
matplotlib.pyplot.ylabel("y",fontsize=15)
matplotlib.pyplot.tick_params(axis='both',labelsize=10)
matplotlib.pyplot.axis([0,110,0,11000])
matplotlib.pyplot.show()
結果為:
7.2.2散點圖
散點圖基礎指令----- matplotlib.pyplot.scatter(X坐标數組,Y坐标數組,其它屬性=…….)
繪制随機漫步圖:
#經典的随機漫步圖
import matplotlib
import matplotlib.pyplot as plt
from random import choice
class RandomWalk():
def __init__(self,num_points=20000):
self.num_points=num_points
self.x_value=[0]
self.y_value=[0]
def fill_walk(self):
while len(self.x_value)<self.num_points:
x_dir=choice([-1,1])
y_dir=choice([-1,1])
x_dis=choice([0,1,2,3,4,5])
y_dis=choice([0,1,2,3,4,5])
x_step=x_dir*x_dis
y_step=y_dir*y_dis
if x_step==0 and y_step==0:
continue
next_x=self.x_value[-1]+x_step #數值-1表示通路倒數第一個元素
next_y=self.y_value[-1]+y_step
self.x_value.append(next_x)
self.y_value.append(next_y)
while True:
rw = RandomWalk()
rw.fill_walk()
point_numbers = list(range(rw.num_points))
plt.figure(figsize=(10, 6))
#c表示顔色,c=數組表示顔色都不相同
# plt.scatter(rw.x_value, rw.y_value, c=point_numbers,cmap=matplotlib.cm.Greys,edgecolor='none', s=1)
plt.scatter(rw.x_value, rw.y_value, c=point_numbers,edgecolor='none', s=1)
plt.show()
keepruning=input("繼續輸出嗎?(y/n)")
if keepruning=='n':
break
輸出結果為:
7.3設定圖像格式
更改字型----- matplotlib.pyplot.rc(‘font’,family=‘Times New Roman’)
設定标題----- matplotlib.pyplot.title(“标題名”,fontsize=int)
設定X軸标題----- matplotlib.pyplot.xlabel(“X軸标題”,fontsize=int)
設定Y軸标題----- matplotlib.pyplot.ylabel(“X軸标題”,fontsize=int)
設定坐标軸刻度大小------ matplotlib.pyplot.tick_params(axis=‘both’,labelsize=int) 其中axis可以指派為’x’、'y’和’both’三種
設定坐标軸的範圍----- matplotlib.pyplot.axis([xmin,xmax,ymin,ymax])
儲存圖檔----- matplotlib.pyplot.savefig(‘檔案名.png’, bbox_inches=‘tight’)
隐藏坐标軸----- matplotlib.axes.get_xaxis().set_visible(False)
設定圖檔長寬比----- matplotlib.pyplot.figure(figsize=(int,int))這個指令最好放在繪圖的前面
7.4 Pygal的安裝
安裝----- 在cmd中把路徑調整到python的安裝目錄(D:可以跳轉磁盤區,cd python可以跳轉到python的檔案夾),輸入pip install pygal即可。
測試----- cmd跳轉到python檔案夾,輸入import pygal無誤即安裝成功。
7.5可視化直方圖
7.5.1直方圖
import pygal
line_chart = pygal.Bar()
line_chart.title = 'Browser usage evolution (in %)'
line_chart.x_labels = map(str, range(2002, 2013))
line_chart.add('Firefox', [None, None, 0, 16.6, 25, 31, 36.4, 45.5, 46.3, 42.8, 37.1])
line_chart.add('Chrome', [None, None, None, None, None, None, 0, 3.9, 10.8, 23.8, 35.3])
line_chart.add('IE', [85.8, 84.6, 84.7, 74.5, 66, 58.6, 54.7, 44.8, 36.2, 26.6, 20.1])
line_chart.add('Others', [14.2, 15.4, 15.3, 8.9, 9, 10.4, 8.9, 5.8, 6.7, 6.8, 7.5])
line_chart.render_to_file('test.svg')
輸出結果: