日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

教你怎么用python繪制dotplot

瀏覽:83日期:2022-06-21 14:48:24
一、前言

R語言不少庫都可以方便的畫dotplot,但是低頻使用R這么多年,我依舊覺得R不是一門真正的編程語言。目前,在python中繪制dotplot貌似沒有很輕量、方便的庫,因此工作之余寫了這個python_dotplot包,方便自己也希望能夠方便他人吧。

二、安裝

可以通過pypi快速安裝:

pip install python_dotplot

該package當然可能存在一定的bug,所以也會處于不斷迭代的過程中,可以通過以下方式獲得特定或最新版本

pip install python_dotplot --upgradepip install python_dotplot==0.0.1b1

如果通過--upgrade參數不能獲得最新版本,國內鏡像會有一定的延遲,可指定pypi官方源指定鏡像:

pip install -i https://pypi.python.org/pypi python_dotplot三、模塊導入

import dotplotimport dotplot.utilsimport pandas as pd%config InlineBackend.figure_format = ’retina’ # 如果你的電腦設備是視網膜屏,可指定該參數渲染jupyter圖像,會超清晰,超好看

包的層級結構很簡單,主要包括以下模塊:

dotplot

├── cmap.py # 自定義color map

├── core.py # 實現了Dotplot類,用于封裝數據以及繪圖

├── hierarchical.py # 實現了層次聚類,用于支持dotplot行和列通過層次聚類進行自動排序

├── __init__.py # 初始化模塊

└── utils.py # 實用函數,目前是夾帶私貨,我自己用的預處理函數,也許對其他人也有用

四、數據準備

我們首先需要準備一個數據,這里要求輸入必須是一個tidy data格式的pandas Dataframe,簡而言之,tidy data是指在該數據框中每一行是一個觀測,每一列是一個屬性,下面以示例數據為例:

term_list = [’GO:0002455’, ’GO:0006958’, ’GO:0006956’, ’GO:0038096’,’GO:0002673’, ’GO:0051251’, ’GO:0060333’, ’GO:0006910’,’GO:0002483’, ’GO:0002440’, ’GO:0009141’, ’GO:0009123’, ’GO:0006119’, ’GO:0009260’, ’GO:0015985’, ’GO:0015986’, ’GO:0006260’, ’GO:0044843’, ’GO:0061621’, ’GO:0061718’]up = pd.read_csv(’./example_data/group1.csv’, header=0, index_col=0)down = pd.read_csv(’./example_data/group2.csv’, header=0, index_col=0)data = dotplot.utils.merge_clusterprofile_results(dataframes=(up, down), groups=[’B6_up’, ’B6_down’], term_list=term_list)

data.head() Description GeneRatio BgRatio pvalue p.adjust qvalue geneID Count group IDGO:0002455 humoral immune response mediated by circulatin... 22/178 150/18670 19.365993 16.222197 16.298589 HLA-DQB1/CD55/IGHM/PTPRC/TRBC2/IGHG2/IGKV3-20/... 22 B6_up GO:0006958 complement activation, classical pathway 20/178 137/18670 17.588789 14.989062 15.065454 CD55/IGHM/TRBC2/IGHG2/IGKV3-20/IGHV4-34/IGHV3-... 20 B6_up GO:0006956 complement activation 20/178 175/18670 15.453684 13.008859 13.085251 CD55/IGHM/TRBC2/IGHG2/IGKV3-20/IGHV4-34/IGHV3-... 20 B6_up GO:0038096 Fc-gamma receptor signaling pathway involved i... 18/178 139/18670 14.916693 12.675988 12.752379 PTPRC/LYN/IGHG2/IGKV3-20/IGHV4-34/IGHV3-30/IGL... 18 B6_up GO:0002673 regulation of acute inflammatory response 18/178 159/18670 13.871614 11.817674 11.894066 HLA-E/CD55/IGHG2/IGKV3-20/IGHV4-34/IGHV3-30/IG... 18 B6_up 五、畫圖

首先我們可以借助 DotPlot的類方法parse_from_tidy_data 對數據進行封裝,然后直接調用plot函數進行繪圖。當然,你也可以通過DotPlot的構造函數__init__()來實例化DotPlot對象。

一維數據展示

new_keys = {’item_key’: ’Description’,’group_key’: ’group’,’sizes_key’: ’Count’}dp = dotplot.DotPlot.parse_from_tidy_data(data, **new_keys)sct = dp.plot(size_factor=10, cmap=’Reds’) # 通過size_factor 調節圖中點的大小

教你怎么用python繪制dotplot

dp = dotplot.DotPlot.parse_from_tidy_data(data, item_key=’Description’, group_key=’group’, sizes_key=’Count’) # 該效果完全同上,這是python語言特性sct = dp.plot(size_factor=10, cmap=’Reds’)

教你怎么用python繪制dotplot

二維數據展示

我們可以通過color_key指定data中的列做顏色映射。

new_keys = {’item_key’: ’Description’,’group_key’: ’group’,’sizes_key’: ’Count’,’color_key’: ’pvalue’}dp = dotplot.DotPlot.parse_from_tidy_data(data, **new_keys)sct = dp.plot(size_factor=10, cmap=’Reds’, cluster_row=True)

教你怎么用python繪制dotplot

​三維數據展示

可以通過circle_key增加一列作為虛線圓圈的映射。

DEFAULT_CLUSTERPROFILE_KEYS = { ’item_key’: ’Description’, ’group_key’: ’group’, ’sizes_key’: ’Count’, ’color_key’: ’pvalue’, ’circle_key’: ’qvalue’}dp = dotplot.DotPlot.parse_from_tidy_data(data, **DEFAULT_CLUSTERPROFILE_KEYS)sct = dp.plot(size_factor=10, cmap=’Reds’, cluster_row=True)

教你怎么用python繪制dotplot

當然,更多的參數我們可以通過signature來查看,我對這些參數都做了類型注釋,應該是通俗易懂的:

?dp.plot

Signature:dp.plot( size_factor:float=15, vmin:float=0, vmax:float=None, path:Union[os.PathLike, NoneType]=None, cmap:Union[str, matplotlib.colors.Colormap]=’Reds’, cluster_row:bool=False, cluster_col:bool=False, cluster_kws:Union[Dict, NoneType]=None, **kwargs,)Docstring::param size_factor: `size factor` * `value` for the actually representation of scatter size in the final figure:param vmin: `vmin` in `matplotlib.pyplot.scatter`:param vmax: `vmax` in `matplotlib.pyplot.scatter`:param path: path to save the figure:param cmap: color map supported by matplotlib:param kwargs: dot_title, circle_title, colorbar_title, dot_color, circle_color other kwargs are passed to `matplotlib.Axes.scatter`:param cluster_row, whether to cluster the row:param cluster_col, whether to cluster the col:param cluster_kws, key args for cluster, including `cluster_method`, `cluster_metric`, ’cluster_n’:return:

因此,我們可以通過關鍵字參數修改圖例中的部分組件:

sct = dp.plot(size_factor=10, cmap=’Reds’, cluster_row=True,dot_title = ’Count’, circle_title=’-log10(qvalue)’,colorbar_title = ’-log10(pvalue)’)

教你怎么用python繪制dotplot

六、寫在篇末

dotplot在數據可視化中是一個強有力的展示方式,選擇一個合適的可視化方式勝過千言萬語

最后,最適合的可視化方式是最直觀、最簡潔的,不是炫技,別被花里胡哨的可視化所迷住雙眼而忽略了信息的傳達。

到此這篇關于教你怎么用python繪制dotplot的文章就介紹到這了,更多相關python繪制dotplot內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
丝袜美腿亚洲一区| 色88888久久久久久影院| 亚洲调教视频在线观看| 丝袜美腿诱惑一区二区三区| 91日韩免费| 久久影院午夜精品| 播放一区二区| 不卡福利视频| 欧美亚洲精品在线| 宅男噜噜噜66国产日韩在线观看| 91精品国产福利在线观看麻豆| 老司机免费视频一区二区| 久久久久九九精品影院| 91视频一区| 免费观看久久av| 国产一区91| 色8久久久久| 国产欧美日韩精品一区二区三区| 国产精品三级| 亚洲精品永久免费视频| 国产精品99免费看| 免费日本视频一区| 欧美啪啪一区| 国产精品久久观看| 免费欧美一区| 亚洲精品日本| 国产精品一站二站| 久草免费在线视频| 红桃视频国产一区| 91九色综合| 成人在线视频中文字幕| 欧美影院三区| 婷婷精品在线观看| 麻豆精品在线视频| 国产一区亚洲| 欧美日韩1区2区3区| 在线天堂中文资源最新版| 日韩一级欧洲| 久久99精品久久久久久园产越南| 亚洲四虎影院| 亚洲ab电影| 精品久久久亚洲| 欧美日韩三区| 国产精品一区二区精品视频观看| а√天堂8资源中文在线| 亚洲激情偷拍| 国产精品久久久久久久久久齐齐 | 亚洲综合不卡| 国产免费播放一区二区| 亚洲女同av| 久久国产精品毛片| 精品久久网站| 亚洲另类av| 国产成人精品三级高清久久91| 欧美成人日韩| 久久午夜影院| 亚洲欧美日本视频在线观看| 国产精品自在| 亚洲欧美久久| 日韩理论片av| 国产日韩在线观看视频| 亚洲天堂久久| 精品国产一区二区三区噜噜噜| 亚洲一区黄色| 日产精品一区二区| 日本不卡高清| 91成人精品| 福利在线一区| 只有精品亚洲| 久久久久久久久久久9不雅视频| 日韩和欧美的一区| 欧美午夜不卡| 亚洲天堂资源| 国产精品密蕾丝视频下载| 国产精品97| 国产成人免费视频网站视频社区| 日韩在线视频一区二区三区| 久久国产主播| 老司机免费视频一区二区三区| 亚洲专区视频| 久久一区二区中文字幕| 精品一区二区三区免费看| 97精品一区| 国产欧美日韩一级| 亚洲人成毛片在线播放女女| 亚洲婷婷免费| 欧洲av不卡| 精品一区二区三区亚洲| 国产色噜噜噜91在线精品| 亚洲综合小说| 欧美日韩国产免费观看视频| 国产一区二区视频在线看| 欧美天堂一区| 亚洲免费成人av在线| 99香蕉国产精品偷在线观看 | 久久精品午夜| 欧美亚洲一级| 亚洲尤物av| 在线亚洲一区| 欧美日韩国产免费观看| 三级小说欧洲区亚洲区| 久久久久久久欧美精品| 中文一区在线| 久久精品亚洲人成影院| 精品视频在线一区二区在线| 国产亚洲欧美日韩在线观看一区二区| 男女精品网站| 国产视频一区三区| 99精品视频在线| 美女久久久久久| 国产乱码精品一区二区三区四区 | 亚洲男女自偷自拍| 九色精品91| 美女网站一区| 午夜久久tv| 黄色av日韩| 午夜国产精品视频| 不卡在线一区二区| 激情久久婷婷| 极品裸体白嫩激情啪啪国产精品| 91精品国产调教在线观看| 久久精选视频| 亚洲午夜黄色| 亚洲一区中文| 亚洲一区欧美二区| 亚洲影视一区| 视频国产精品| 亚洲91网站| 91成人在线网站| 国产精品久久久久久久久久妞妞| 国产精品伦一区二区| 精品伊人久久| 91精品xxx在线观看| 午夜精品成人av| 欧美日韩国产一区精品一区| 石原莉奈在线亚洲二区| 亚洲毛片在线| 欧美国产先锋| 日韩黄色大片| 亚洲少妇一区| 亚洲精品一级| 国产激情久久| 亚洲涩涩在线| 国产午夜久久| 国产亚洲一卡2卡3卡4卡新区| 免费在线亚洲欧美| 亚洲播播91| 亚洲欧美日韩国产一区二区| 综合激情一区| 国产精品美女久久久久久不卡| 精品理论电影在线| 久久九九精品| 亚久久调教视频| 久久中文字幕导航| 四虎884aa成人精品最新| 91麻豆国产自产在线观看亚洲| 欧美一区二区三区高清视频| 中文字幕亚洲在线观看| 国产精品丝袜在线播放| 在线一区av| 久久成人精品| 国产欧美日韩综合一区在线播放| 成人午夜在线| 亚洲免费精品| 国产日韩一区| 91精品国产福利在线观看麻豆| 丝袜美腿亚洲一区二区图片| 国产精品一区二区99| 久久精品卡一| 欧美一区网站| 日韩不卡视频在线观看| 视频一区二区三区在线| 免费亚洲婷婷| 国产国产精品| 美日韩一区二区三区| 欧美日韩色图| 国产日本精品| 欧美午夜精品一区二区三区电影| 在线免费观看亚洲| 国精品产品一区| 香蕉久久夜色精品国产| 久久a爱视频| 99在线|亚洲一区二区| 欧美交a欧美精品喷水| 欧美日韩激情| 国产精品www.| 中文亚洲免费| 成人在线丰满少妇av| 亚洲精品美女91| 欧美不卡高清一区二区三区| 少妇高潮一区二区三区99| 中文字幕在线免费观看视频| 亚洲精选av| 九九精品调教| 国产精品乱战久久久| 国产精品外国| 欧洲亚洲一区二区三区| 国产私拍福利精品视频二区| 日韩午夜一区| 老牛影视精品|