python蟒蛇繪制
㈠ python-彩色蟒蛇繪制
要用到turtle庫中的函數,
turtle庫是一宴碧個繪制圖像的函數庫,橫軸為x軸,縱軸為y軸
def 表示用戶自定義函數,drawsnake為函數名,()中為函數參數
定義顏色
循環 len 次,i用來計數
pencolor() 函數晌陵舉,改變畫筆顏色,參數為顏色
circle( , ) 函數,畫圓,第一個參數為半徑,正數表示在左側,負數表示在右側,第二個參數為圓形的弧度值。
fd()函數,畫直線,參數為直線長度
fd()函數,畫直線,參數為直線長度
用戶自定義函汪物數 main()
setup ( , , , ) 函數,啟動圖形窗口,四個參數分別是,寬度,高度,窗口左上角在屏幕中的x坐標和y坐標。
定義畫筆寬度
pensize() 函數,畫筆寬度,30像素
seth() 函數,畫筆啟動時的方向,其中參數,0表示東,順逆時針方向度數遞增。
調用drawsnake函數
調用main函數
㈡ python為什麼叫大蟒蛇
因為語言的發明者,Guido van Rossum很喜歡看一個英國肥皂劇《Monty Python飛行馬戲團》,所以把這種語言命名為了Python。python本身就有蟒蛇的意思,Python的第一個公開版本正式發行,是在1991年。而Java語言最早是在1995年發行的,比Python還晚了4年。
Python的創始人為荷蘭人吉多·范羅蘇姆。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,作為ABC 語言的一種繼承。
之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是取自英國20世紀70年代首播的電視喜劇《蒙提.派森的飛行馬戲團》(Monty Python's Flying Circus)。
(2)python蟒蛇繪制擴展閱讀:
Python的設計簡潔明了,這使Python成為一種通用語言,易於閱讀,維護並在眾多用戶中流行。設計師發展的一般指導思想是,對於特定的問題,只要有解決它的最佳方法即可。
這由TimPeters(稱為The Zen of Python)撰寫的Python格言中表達:應該有一種-最好只有一種-顯而易見的方法。 這恰好與Perl語言(另一種功能)相似.TMTOWTDI的中心思想(有不止一種方法可以做到)完全相反。
Python的作者特意設計了限制性很強的語法,這些語法會導致不良的編程習慣(例如if語句的下一行未縮進右邊)無法被編譯。 最重要的規則之一是Python的縮進規則。
一種和大多數其他語言(例如C)之間的區別是模塊的邊界完全由該行中每行的第一個字元的位置確定(C語言由一對捲曲 花括弧{}確定了模塊的邊界,與字元的位置無關。
這引起了爭議。 由於自諸如C之類的語言誕生以來,該語言的語法含義已與字元排列分開,因此已被視為編程語言的進步。 但是,不可否認的是,Python確實通過迫使程序員縮進(包括if,for和function定義等)來使程序更清晰,更漂亮。
㈢ 如何使用python繪制gwas分析中的曼哈頓圖和qq圖
曼哈頓圖
將示例數據下載下來:
wget https://raw.githubusercontent.com/ShujiaHuang/geneview-data/master/GOYA.csv
先簡單地查看一下數據的格式:
chrID,rsID,position,pvalue
1,rs3094315,742429,0.144586
1,rs3115860,743268,0.230022
1,rs12562034,758311,0.644366
1,rs12124819,766409,0.146269
1,rs4475691,836671,0.458197
1,rs28705211,890368,0.362731
1,rs13303118,908247,0.22912
1,rs9777703,918699,0.37948
1,rs3121567,933331,0.440824
一共是4列(逗號分隔),分別為:[1]染色體編號,[2]SNP rs 編號,[3] 位點在染色體上的位置,[4]顯著性差異程度(pvalue)。在本例曼哈頓圖中我們只需要使用第1,3和4列;而QQ圖則只需要第4列——pvalue。
下面先從繪制曼哈頓圖開始。我們先將需要的數據讀取到一個列表中,可以這樣做:
import csv
data = []
with open("GOYA.csv") as f:
f_csv = csv.reader(f)
headers = next(f_csv)
data = [[row[0], int(row[2]), float(row[3])] for row in f_csv]
現在GOYA.csv中的數據就都存放在data列表中了,由於Python在讀取文件中數據時,都是以string類型存放,因此對於第3和第4列的數據有必要事先把做點類型轉換。
接下來,調用geneview中的曼哈頓圖函數。
import matplotlib.pyplot as plt
from geneview.gwas import manhattanplot
ax = manhattanplot(data, xlabel="Chromosome", ylabel="-Log10(P-value)") # 這就是Manhattan plot的函數
plt.show()
只需這樣的一句代碼就能創建一個漂亮的曼哈頓圖,有必要再次指出的是,geneview是以matplotlib為基礎開發出來的,所創建的圖形對象實際上仍屬於matplotlib,geneview內部自定義了很多圖形風格,同時封裝了大量只屬於基因組數據的圖表類型,但圖形的輸出格式以及界面顯示都仍和matplotlib一樣,因此在這里我們使用matplotlib.pyplot的show()函數(上例中:plt.show())將所繪制出來的曼哈頓圖顯示出來。如果要將圖形保存下來,則只需執行`plt.savefig("man.png")`,這樣就會在該目錄下生成一個名為『man.png』png格式的曼哈頓圖,若是要存為pdf格式,則只需將所要保存的文件名後綴改成『.pdf』(plt.savefig("man.pdf"))就可以了。下面這些格式:emf,
eps, pdf, png, jpg, ps, raw, rgba, svg,
svgz等都是支持的,至於最新的還有多少種,還請參照matplotlib文檔中說明。
此外,geneview中的每個畫圖函數都有著足夠的靈活性,我們也可以根據自己的需要做一些調整,比如:
xtick = ['1', '2','3','4','5','6','7','8','9','10','11','12','13','14','16','18', '20','22']
manhattanplot(data,
xlabel="Chromosome", # 設置x軸名字
ylabel="-Log10(P-value)", # 設置y軸名字
xtick_label_set = set(xtick), # 限定橫坐標軸上的刻度顯示
s=40, # 設置圖中散點的大小
alpha=0.5, # 調整散點透明度
color="#f28b1e,#9a0dea,#ea0dcc,#63b8ff", # 設置新的顏色組合
)
實現新的顏色組合、限定x軸上的刻度顯示和散點大小的調節。甚至還可以將散點改為線:
manhattanplot(data,
xlabel="Chromosome", # 設置x軸名字
ylabel="-Log10(P-value)", # 設置y軸名字
xtick_label_set = set(xtick), # 限定橫坐標軸上的刻度顯示
alpha=0.5, # 調整散點透明度
color="#f28b1e,#9a0dea,#ea0dcc,#63b8ff", # 設置新的顏色組合
kind="line"
)
其它方面的調整請查看geneview文檔中的相關說明。
Q-Q圖
qq圖只需用到上例中的pvalue那一列:
import csv
import matplotlib.pyplot as plt
from geneview.gwas import qqplot
pvalue=[]
with open("GOYA.csv") as f:
f_csv = csv.reader(f)
headers = next(f_csv)
pvalue = [float(row[3]) for row in f_csv]
ax = qqplot(pvalue, color="#00bb33", xlabel="Expected p-value(-log10)", ylabel="Observed p-value(-log10)") # Q-Q 圖
plt.show()
同樣,也可以根據自己的需要對改圖進行相關的調整。
以上,便是如何使用Python來製作Manhattan圖和QQ圖的方法,geneview的集成函數簡化了這樣的一個過程。
另外,如果你也看過丹麥人的這個GOYA研究,就會發現實際以上的兩個圖和其文章中的基本是一致的,當然我自己做了些數據清洗的操作,結果上仍然會有些許的不同。雖然此刻下結論還有點為時尚早,但總的來講,我應該也可以通過這個數據集比較順利的將其結果重復出來了。
最後,附上利用geneview畫曼哈頓圖和QQ圖的代碼:
(1)曼哈頓圖:
(2)QQ圖:
㈣ 如何採用Python語言繪制一條彩色的蟒蛇
你好,可以輸入以下程序螞御(個人作了注釋,注釋不影響最終結果)。:
#畫彩色蟒蛇了#import turtle def drawSnake(rad,angle,len,neckrad): mycolor=["black","red","red","blue","yellow"] yocolor=["yellow","green","yellow","red","red"] for i in range(len): turtle.pencolor(mycolor[i]) turtle.circle(rad,angle) #沿著一個圓形爬行# turtle.pencolor(yocolor[i]) turtle.circle(-rad,angle) turtle.pencolor("green") turtle.circle(rad,angle/2) turtle.pencolor("yellow") turtle.fd(rad) turtle.pencolor("red") turtle.circle(neckrad+1,180) turtle.pencolor("green") turtle.fd(rad*2/3)def main(): turtle.setup(1300,800,0,0) #啟動圖形窗口,寬度,高度,左上角在屏幕中的坐標位置,x,y# pythonsize = 30 turtle.pensize(pythonsize) #運動軌跡的寬度,這里是30像素# turtle.seth(-40) #方向為散旁東南方向40°# drawSnake(40,80,5,pythonsize/2)main()
格式悶掘岩自己整理一下。
㈤ 如何用python繪制彩色蟒蛇
這個你只要使用它的繪圖工具就可以進行繪制彩色蟒蛇了
㈥ 請詳細描述蟒蛇繪制代碼,代碼右邊的數字表示第幾行代碼,方便大家描述
在代碼最後一行,增跡余加turtle.done()作為結尾。
代碼
import turtledef drawsnake(rad,angle,len,neckrad):
a = ['blue','red','yellow','green'姿隱滾,'攜滲pink']
for i in range(0,len):
turtle.pencolor(a[i])
turtle.circle(rad,angle)
turtle.circle(-rad,angle)
turtle.pencolor('black')
turtle.circle(rad,angle/2)
turtle.fd(rad)
turtle.circle(neckrad+1,180)
turtle.fd(rad*2/3)def main():
turtle.setup(1300,800,0,0)
pythonsize = 30
turtle.pensize(pythonsize)
turtle.seth(-40)
drawsnake(40,80,5,pythonsize/2)
turtle.done()main()