熱線電話:13121318867

登錄
首頁精彩閱讀Python數據可視化編程通過Matplotlib創建散點圖代碼示例
Python數據可視化編程通過Matplotlib創建散點圖代碼示例
2018-04-20
收藏

Python數據可視化編程通過Matplotlib創建散點圖代碼示例

Matplotlib簡述:

Matplotlib是一個用于創建出高質量圖表的桌面繪圖包(主要是2D方面)。該項目是由JohnHunter于2002年啟動的,其目的是為Python構建一個MATLAB式的繪圖接口。如果結合PythonIDE使用比如PyCharm,matplotlib還具有諸如縮放和平移等交互功能。它不僅支持各種操作系統上許多不同的GUI后端,而且還能將圖片導出為各種常見的矢量(vector)和光柵(raster)圖:PDF、SVG、JPG、PNG、BMP、GIF等。此外,matplotlib還有許多插件工具集,如用于3D圖形的mplot3d以及用于地圖和投影的basemap。

準備數據:從文本文件中解析數據

本文使用的數據主要包含以下三種特征:每年獲得的飛行??屠锍虜?,玩視頻游戲所耗時間百分比,每周消費的冰淇淋公升數。其中分類結果作為文件的第四列,并且只有3、2、1三種分類值。

上述特征數據的格式經過file2matrix函數解析處理之后,可輸出為矩陣和類標簽向量。

將文本記錄轉換為Numpy的解析程序:

使用file2matrix讀取文件數據,必須確保待解析文件存儲在當前的工作目錄中。導入數據之后,簡單檢查一下數據格式:

分析數據:使用Matplotlib創建散點圖

編輯kNN.py文件,引入matplotlib,調用matplotlib的scatter繪制散點圖。

importmatplotlib
importmatplotlib.pyplot as plt
deffile2matrix(filename):
......
returnreturnMat,classLabelVector
datingDataMat,datingLabels=file2matrix('datingTestSet2.txt')
fig=plt.figure()
ax=fig.add_subpot(111)
ax.scatter(datingDataMat[:,1],datingDataMat[:,2])
plt.show()

散點圖使用datingDataMat矩陣的第二、第三列數據,分別表示特征值“玩視頻游戲所耗時間百分比”和“每周消費的冰淇淋公升數”。

上圖由于沒有使用樣本分類的特征值,很難看到任何有用的數據模式信息。為了更好理解數據信息,Matplotlib庫提供的scatter函數支持個性化標記散點圖上的點。調用scatter函數使用下列參數:

ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels))
plt.show()

上圖利用datingLabels存儲的類標簽屬性,在散點圖上繪制了色彩不等、尺寸不同的點。因而基本上可以從圖中看到數據點所屬三個樣本分類的區域輪廓。為了得到更好的效果,采用datingDataMat矩陣的屬性列1和2展示數據,并以紅色的'*'表示類標簽1、藍色的'o'表示表示類標簽2、綠色的'+'表示類標簽3,修改參數如下:

importnumpy as np
......
datingLabels=array(datingLabels)
idx_1=np.where(datingLabels==1)
p1=ax.scatter(datingDataMat[idx_1,0],datingDataMat[idx_1:,1],market='*',color='r',label='1',s=20
idx_2=np.where(datingLabels==2)
p2=ax.scatter(datingDataMat[idx_2,0],datingDataMat[idx_2:,1],market='o',color='b',label='1',s=10
idx_3=np.where(datingLabels==3)
p3=ax.scatter(datingDataMat[idx_3,0],datingDataMat[idx_3:,1],market='+',color='g',label='1',s=30
plt.legend(loc='upper right')
plt.show()

lt.show()

總結

本文簡單介紹了Matplotlib,并以實例分析了如何使用Matplotlib庫圖形化展示數據,最后通過修改matplotlib的scatter函數參數使得散點圖的分類區域更加清晰。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢