最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你怎么用python繪制dotplot

 更新時(shí)間:2021年04月23日 10:27:45   作者:jeffery0207  
這篇文章主要介紹了教你怎么用python繪制dotplot,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下

一、前言

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

二、安裝

可以通過pypi快速安裝:

pip install python_dotplot

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

pip install python_dotplot --upgrade
pip install python_dotplot==0.0.1b1

如果通過--upgrade參數(shù)不能獲得最新版本,國內(nèi)鏡像會(huì)有一定的延遲,可指定pypi官方源指定鏡像:

pip install -i https://pypi.python.org/pypi python_dotplot

三、模塊導(dǎo)入

import dotplot
import dotplot.utils
import pandas as pd

%config InlineBackend.figure_format = 'retina'  # 如果你的電腦設(shè)備是視網(wǎng)膜屏,可指定該參數(shù)渲染jupyter圖像,會(huì)超清晰,超好看

包的層級結(jié)構(gòu)很簡單,主要包括以下模塊:

dotplot

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

├── core.py # 實(shí)現(xiàn)了Dotplot類,用于封裝數(shù)據(jù)以及繪圖

├── hierarchical.py # 實(shí)現(xiàn)了層次聚類,用于支持dotplot行和列通過層次聚類進(jìn)行自動(dòng)排序

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

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

四、數(shù)據(jù)準(zhǔn)備

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

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
ID
GO: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 對數(shù)據(jù)進(jìn)行封裝,然后直接調(diào)用plot函數(shù)進(jìn)行繪圖。當(dāng)然,你也可以通過DotPlot的構(gòu)造函數(shù)__init__()來實(shí)例化DotPlot對象。

  • 一維數(shù)據(jù)展示
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 調(diào)節(jié)圖中點(diǎn)的大小

在這里插入圖片描述

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')

在這里插入圖片描述

  • 二維數(shù)據(jù)展示

我們可以通過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)

在這里插入圖片描述

  • ​三維數(shù)據(jù)展示

可以通過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)

在這里插入圖片描述

當(dāng)然,更多的參數(shù)我們可以通過signature來查看,我對這些參數(shù)都做了類型注釋,應(yīng)該是通俗易懂的:

?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:

因此,我們可以通過關(guān)鍵字參數(shù)修改圖例中的部分組件:

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

在這里插入圖片描述

六、寫在篇末

dotplot在數(shù)據(jù)可視化中是一個(gè)強(qiáng)有力的展示方式,選擇一個(gè)合適的可視化方式勝過千言萬語

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

到此這篇關(guān)于教你怎么用python繪制dotplot的文章就介紹到這了,更多相關(guān)python繪制dotplot內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python openCV自制繪畫板

    python openCV自制繪畫板

    這篇文章主要為大家詳細(xì)介紹了python openCV自制繪畫板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作示例

    Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作示例

    這篇文章主要介紹了Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作,結(jié)合實(shí)例形式分析了Python面向?qū)ο笙嚓P(guān)的類與對象屬性常見操作技巧,需要的朋友可以參考下
    2018-12-12
  • 關(guān)于sys.stdout和print的區(qū)別詳解

    關(guān)于sys.stdout和print的區(qū)別詳解

    今天小編就為大家分享一篇關(guān)于sys.stdout和print的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python編程中常見的錯(cuò)誤及其解決方法總結(jié)

    Python編程中常見的錯(cuò)誤及其解決方法總結(jié)

    在開發(fā) Python 程序時(shí),錯(cuò)誤幾乎是無法避免的,無論是新手還是經(jīng)驗(yàn)豐富的開發(fā)者,都可能在編程過程中遇到各種各樣的問題,調(diào)試錯(cuò)誤不僅消耗時(shí)間,還可能導(dǎo)致生產(chǎn)環(huán)境出現(xiàn)問題,為了提高調(diào)試效率,本文將總結(jié)一些 Python 編程中常見的錯(cuò)誤及其解決方法,并提供實(shí)用的調(diào)試技巧
    2025-02-02
  • Python使用CRC實(shí)現(xiàn)圖片去重

    Python使用CRC實(shí)現(xiàn)圖片去重

    這篇文章主要為大家詳細(xì)介紹了Python如何使用CRC實(shí)現(xiàn)圖片去重功能,文中的示例代碼講解詳細(xì),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • 教你怎么用Python selenium操作瀏覽器對象的基礎(chǔ)API

    教你怎么用Python selenium操作瀏覽器對象的基礎(chǔ)API

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著怎么用Python selenium操作瀏覽器對象的基礎(chǔ)API展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python 用三行代碼提取PDF表格數(shù)據(jù)

    Python 用三行代碼提取PDF表格數(shù)據(jù)

    這篇文章主要介紹了Python 用三行代碼提取PDF表格數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python操作xml文件詳細(xì)介紹

    python操作xml文件詳細(xì)介紹

    這篇文章主要介紹了python操作xml文件詳細(xì)介紹,著重介紹了獲取XML標(biāo)簽的屬性和值的方法,需要的朋友可以參考下
    2014-06-06
  • Python操作列表之List.insert()方法的使用

    Python操作列表之List.insert()方法的使用

    這篇文章主要介紹了Python操作列表之List.insert()方法的使用,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python導(dǎo)入pandas具體步驟方法

    python導(dǎo)入pandas具體步驟方法

    在本篇文章中小編給大家分享了關(guān)于python導(dǎo)入pandas的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。
    2019-06-06

最新評論

邯郸县| 柳林县| 徐州市| 定南县| 内黄县| 莱西市| 大埔区| 贵阳市| 汝南县| 铜陵市| 临泽县| 西峡县| 胶州市| 陆河县| 长乐市| 滦平县| 岑溪市| 德江县| 平顶山市| 玉环县| 新河县| 莲花县| 叶城县| SHOW| 中超| 伊吾县| 三穗县| 泾阳县| 晋中市| 新干县| 万山特区| 丹棱县| 酒泉市| 巴彦淖尔市| 永济市| 杭州市| 龙陵县| 佛山市| 盐亭县| 黄龙县| 南投市|