二十二世纪古墓奇兵爱慕影院

小梁建站專注重慶中小企業網站建設SEO優化,讓您網站更具價值!

當前位置:首頁 > WEB前端學習 > 手把手教你如何利用Python繪制技術功效圖的方法【附實戰作圖詳解】

手把手教你如何利用Python繪制技術功效圖的方法【附實戰作圖詳解】

時間:2018-08-10 12:20 來源:重慶網站制作公司(www.l2qz.net) 作者:重慶網站建設公司

今天梁先國網絡科技來教大家用Python畫技術功效氣泡圖。
 
編程小白不要覺得看不懂代碼就被嚇退了,其實就是把代碼拷進去,一鍵式粘貼,代碼基本不用改,但是要注意Excel里面的數據設置和命名。下面就一起來具體看看吧。
 
1.安裝開發環境
 
首先需要下載Python的操作軟件Anaconda。
 
Anaconda的下載地址為:https://www.anaconda.com/download/#macos
 
打開下載鏈接后,可以看到提供三個操作系統的下載選項。
 
 
根據自己所用的電腦的操作系統,選擇相應的版本下載:windows用戶點擊窗戶圖標,Mac用戶點擊蘋果圖標,Linux用戶點擊小企鵝。
 
下載好安裝包后,按照提示進行安裝。
 
 
 
2. 導入繪圖所需的擴展包
 
 
首先,導入繪圖需要的擴展包,并重新命名為較短的單詞(#后為該句注釋)。
 
import numpy as np #導入python的數值計算擴展包numpy,并重命名為np
 
import matplotlib.pyplot as plt #導入Python的繪圖擴展包matplotlib,并重新命名為plt
 
import pandas as pd #導入python的數據處理擴展包pandas,并重命名為pd,該包用于讀寫excel文件
 
 
 
3. 設置excel中的數據
 
 
氣泡圖共有4個維度的獨立變量,分別為x,y,s和c,其中x代表橫坐標,y代表縱坐標,s代表氣泡面積,c代表氣泡顏色。
 
繪圖所需的4維數據信息,全部從excel表格中讀取。四個維度在實際中均可單獨配置,它們是相互獨立的。
 
表1為xys三個變量的數據信息,藍色橫軸為氣泡圖的x軸數據,綠色縱軸為氣泡圖的y軸數據,中間灰白相間的數據(s)為氣泡的大小。將包含表1的數據表格存放在程序所在文件夾下,命名為“data.xlsx”。
 
 
 
命名為“data.xlsx”數據表
 
表2為xyc三個變量的數據信息,藍色橫軸為氣泡圖的x軸數據,綠色縱軸為氣泡圖的y軸數據,中間灰白相間的數據(c)為氣泡的顏色。將包含表2的數據表格存放在程序所在文件夾下,命名為“colors.xlsx”。
 
 
 
4. 讀取Excel中的數據
 
 
從'data.xlsx'文件中讀取氣泡面積數據
 
data1=pd.read_excel('data.xlsx') #從excel文件中讀取數據,并保存到data1變量中
 
x=data1.columns#獲取數據表的列,作為x軸數據
 
x.tolist()#轉化成Python列表,方便繪圖
 
data2=data1.T#旋轉方向,行變列,列變行
 
y_index=[]#聲明一個空列表
 
for i in data2.columns: #循環訪問列元素的每個索引
 
    y_index.append(i) #將列元素的索引加入列表
 
print(y_index) #打印列表查看數據
 
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)] #從列表數據中生成y軸坐標矩陣
 
 
 
從'colors.xlsx'文件種讀取顏色數據
 
 
colors1=pd.read_excel('colors.xlsx') #從colors excel文件中讀取數據,保存到colors1變量中
 
colors2=colors1.T#轉置表格,行變列,列變行
 
 
 
4. 繪圖
 
 
y軸共有10個系列,所以循環10次繪制。使用上面計算出來的x,y,area和colors的值進行繪制,同時可以額外制定一個透明度參數alpha,alpha=1時為不透明,alpha=0時為全透明。
 
for i inrange(len(y_index)):#循環繪圖,循環次數為excel表格中的數據行數
 
    plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1], alpha=0.5) #繪制圖像,因為s和c的索引從1開始,所以用i+1索引
 
 
plt.show()#顯示繪制的圖像
 
 
 
 
 
 
編程零基礎的小伙伴有沒有看暈掉?
 
其實,把上述代碼寫到一個文件里,得到下面的程序文件,不想動腦筋,直接拷貝下面的代碼就可以了。
 
import numpy as np #導入python的數值計算擴展包numpy,并重命名為np
 
import matplotlib.pyplot as plt #導入Python的繪圖擴展包matplotlib,并重新命名為plt
 
import pandas as pd #導入python的數據處理擴展包pandas,并重命名為pd,該包用于讀寫excel文件
 
 
 
data1=pd.read_excel('data.xlsx')
 
data2=data1.T
 
x=data1.columns#獲取數據表的列,作為x軸數據
 
x.tolist()#轉化成Python列表,方便繪圖
 
y_index=[]
 
for i in data2.columns:
 
    y_index.append(i)
 
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
 
colors1=pd.read_excel('colors.xlsx')
 
colors2=colors1.T
 
 
 
for i inrange(len(y_index)):#循環繪圖,循環次數為excel表格中的數據行數
 
    plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1], alpha=0.5)#繪制圖像,因為s和c的索引從1開始,所以用i+1索引
 
plt.show()
 
 
 
 
 
 
福利大放送
 
如果還想給氣泡圖添加橫縱坐標標簽怎么辦?如果還想加網格線背景怎么辦?EMMA為大家貼心準備了格式代碼。
 
終于可以擺脫丑丑的low辦法——“插入文本框”,有沒有很開心啊~~
 
 
1.加上網格線背景
 
想在氣泡圖上加入網格線背景,形成一種“串糖葫蘆的效果”,在程序種只需要加入一句話:plt.grid(True)
 
將這句話加在plt.show()語句之前即可。
 
import numpy as np #導入python的數值計算擴展包numpy,并重命名為np
 
import matplotlib.pyplot as plt #導入Python的繪圖擴展包matplotlib,并重新命名為plt
 
import pandas as pd #導入python的數據處理擴展包pandas,并重命名為pd,該包用于讀寫excel文件
 
 
 
data1=pd.read_excel('data.xlsx')
 
data2=data1.T
 
x=data1.columns#獲取數據表的列,作為x軸數據
 
x.tolist()#轉化成Python列表,方便繪圖
 
y_index=[]
 
for i in data2.columns:
 
    y_index.append(i)
 
#print(y_index)
 
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
 
colors1=pd.read_excel('colors.xlsx')
 
colors2=colors1.T
 
 
 
for i inrange(len(y_index)):#循環繪圖,循環次數為excel表格中的數據行數
 
    plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1], alpha=0.5)#繪制圖像,因為s和c的索引從1開始,所以用i+1索引
 
plt.grid(True)
 
plt.show()
 
 
 
2. 加入x,y軸刻度和圖片標題
 
在原來的程序中,第22~24行加入三條語句實現信息說明,使用額外的'size'參數來指定文本的大小。
 
import numpy as np #導入python的數值計算擴展包numpy,并重命名為np
 
import matplotlib.pyplot as plt #導入Python的繪圖擴展包matplotlib,并重新命名為plt
 
import pandas as pd #導入python的數據處理擴展包pandas,并重命名為pd,該包用于讀寫excel文件
 
data1=pd.read_excel('data.xlsx')
 
data2=data1.T
 
x=data1.columns#獲取數據表的列,作為x軸數據
 
x.tolist()#轉化成Python列表,方便繪圖
 
y_index=[]
 
for i in data2.columns:
 
    y_index.append(i)
 
#print(y_index)
 
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
 
colors1=pd.read_excel('colors.xlsx')
 
colors2=colors1.T
 
for i inrange(len(y_index)):#循環繪圖,循環次數為excel表格中的數據行數
 
    plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1], alpha=0.5)#繪制圖像,因為s和c的索引從1開始,所以用i+1索引
 
plt.grid(True)  
 
plt.xlabel('Series',size=14)
 
plt.ylabel('Type',size=14)
 
plt.title('A Python Scatter Demo',size=14)
 
plt.show()#顯示圖片
 
 
 
3. 修改x,y軸標簽顯示
 
增加第24行~29行對xy軸標度進行修改,同時將原程序的21~23行改用中文顯示。
 
import numpy as np #導入python的數值計算擴展包numpy,并重命名為np
 
import matplotlib.pyplot as plt #導入Python的繪圖擴展包matplotlib,并重新命名為plt
 
import pandas as pd #導入python的數據處理擴展包pandas,并重命名為pd,該包用于讀寫excel文件
 
 
 
data1=pd.read_excel('data.xlsx')
 
data2=data1.T
 
x=data1.columns#獲取數據表的列,作為x軸數據
 
x.tolist()#轉化成Python列表,方便繪圖
 
y_index=[]
 
for i in data2.columns:
 
    y_index.append(i)
 
#print(y_index)
 
y= [[i for y_data inrange(len(x))] for i inrange(1,len(y_index)+1)]
 
colors1=pd.read_excel('colors.xlsx')
 
colors2=colors1.T
 
 
 
for i inrange(len(y_index)):#循環繪圖,循環次數為excel表格中的數據行數
 
    plt.scatter(x, y[i], s=data2[i+1], c=colors2[i+1], alpha=0.5)#繪制圖像,因為s和c的索引從1開始,所以用i+1索引
 
plt.grid(True)  
 
plt.xlabel('技術手段',size=14)
 
plt.ylabel('技術效果',size=14)
 
plt.title('XXX領域技術功效分析',size=14)
 
plt.xticks([1, 2, 3, 4, 5, 6, 7],['技術手段1', '技術手段2', '技術手段3',  '技術手段4', '技術手段5', '技術手段6', '技術手段7'])
 
plt.yticks([1, 2, 3, 4, 5, 6, 7, 8, 9, 10],['技術效果1', '技術效果2', '技術效果3', '技術效果4', '技術效果5','技術效果6','技術效果7','技術效果8','技術效果9','技術效果10'],size=14)
 
plt.show()#顯示圖片
 
 
Python繪制技術功效圖
 
另外,用windows的小伙伴,顯示中文如果有問題,請在程序中import那兩句之后,加入
 
plt.rc('font', family='SimHei', size=13) #指定字體文件為微軟黑體
 
來解決中文顯示亂碼問題。

版權聲明:本文:手把手教你如何利用Python繪制技術功效圖的方法【附實戰作圖詳解】 由重慶網站制作公司(www.l2qz.net)原創內容,如需要轉載請注明原文網址:重慶網站建設公司http://www.l2qz.net/

 
喜歡看,就分享到:

圍觀: 9999次 | 責任編輯:重慶網站建設公司

回到頂部
二十二世纪古墓奇兵爱慕影院 活塞vs老鹰 37传奇霸业 绝地求生大逃杀多少钱 南安普敦跟埃弗顿哪个球队强 大丰收试玩 北京11选5分布走势图 和平精英怎么玩 dnf装备找回 金钱豹走势图 黑暗故事注册 迷你世界游戏下载 狼队0-3曼城