电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

教你怎么用python繪制dotplot

瀏覽:15日期: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 編程
相關文章:
主站蜘蛛池模板: 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | 杭州双螺杆挤出机-百科| 发光字|标识设计|标牌制作|精神堡垒 - 江苏苏通广告有限公司 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 米顿罗计量泵(科普)——韬铭机械 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | 集菌仪厂家_全封闭_封闭式_智能智能集菌仪厂家-上海郓曹 | 上海律师事务所_上海刑事律师免费咨询平台-煊宏律师事务所 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 武汉宣传片制作-视频拍摄-企业宣传片公司-武汉红年影视 | IPO咨询公司-IPO上市服务-细分市场研究-龙马咨询 | 鲁网 - 山东省重点新闻网站,山东第一财经门户 | 求是网 - 思想建党 理论强党 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 太平洋亲子网_健康育儿 品质生活| 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 南京和瑞包装有限公司| MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 天长市晶耀仪表有限公司 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 |