教你怎么用python绘制dotplot

R语言不少库都可以方便的画dotplot,但是低频使用R这么多年,我依旧觉得R不是一门真正的编程语言。目前,在python中绘制dotplot貌似没有很轻量、方便的库,因此工作之余写了这个python_dotplot包,方便自己也希望能够方便他人吧。

可以通过pypi快速安装:

pipinstallpython_dotplot该package当然可能存在一定的bug,所以也会处于不断迭代的过程中,可以通过以下方式获得特定或最新版本

pipinstallpython_dotplot--upgradepipinstallpython_dotplot==0.0.1b1如果通过--upgrade参数不能获得最新版本,国内镜像会有一定的延迟,可指定pypi官方源指定镜像:

importdotplotimportdotplot.utilsimportpandasaspd%configInlineBackend.figure_format='retina'#如果你的电脑设备是视网膜屏,可指定该参数渲染jupyter图像,会超清晰,超好看包的层级结构很简单,主要包括以下模块:

dotplot

├──cmap.py#自定义colormap

├──core.py#实现了Dotplot类,用于封装数据以及绘图

├──hierarchical.py#实现了层次聚类,用于支持dotplot行和列通过层次聚类进行自动排序

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

└──utils.py#实用函数,目前是夹带私货,我自己用的预处理函数,也许对其他人也有用

我们首先需要准备一个数据,这里要求输入必须是一个tidydata格式的pandasDataframe,简而言之,tidydata是指在该数据框中每一行是一个观测,每一列是一个属性,下面以示例数据为例:

首先我们可以借助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调节图中点的大小

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

我们可以通过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)

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

当然,更多的参数我们可以通过signature来查看,我对这些参数都做了类型注释,应该是通俗易懂的:

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

dotplot在数据可视化中是一个强有力的展示方式,选择一个合适的可视化方式胜过千言万语

最后,最适合的可视化方式是最直观、最简洁的,不是炫技,别被花里胡哨的可视化所迷住双眼而忽略了信息的传达。

THE END
1.python怎么对cad实现自动画图,Python交流,技术交流,鱼C论坛...要用Python实现对CAD的自动画图,你可以使用一些专门的库,比如`pyautocad`或`ezdxf`。以下是一个简单的...https://fishc.com.cn/thread-246591-1-1.html
2.pandas中绘图函数.ipynbExcel_pythonexcel画图_pythonexcel_excel调用_python画图_ 可以顺畅的再Python中调取Excel文件,并用值进行画图,好用 上传者:weixin_42676678时间:2021-09-29 projec_9 projec_9 上传者:weixin_42165018时间:2021-02-13 pandas学习资料 pandas学习资料, 有需要的可以下载来看看,一起学习,一起进步 ...https://www.iteye.com/resource/qq_35456045-12154701
3.pythonPyAUtoGUI库实现自动化控制鼠标键盘PyAutoGUI 不知道你有没有用过,它是一款用Python自动化控制键盘、鼠标的库。但凡是你不想手动重复操作的工作都可以用这个库来解决。 比如,我想半夜时候定时给发个微信,或者每天自动刷页面等操作,它能完全模拟手动操作,而你可以安心的刷剧了。 嗯,懒惰是程序员的美德。 https://www.xin3721.com/Python/python50457.html
4.LinuxIGV自动画图for自动化报告git路径:https://github.com/stevekm/IGV-snapshot-automator 下载和安装方法,git上都有详细的说明,参考完成。 测试: python make_IGV_snapshots.py ./test_data/test_alignments.bam 运行软件提供的测试数据后,会生成一个IGV_Snapshots 文件夹,里面包含*.png 图片 ...https://www.jianshu.com/p/c1583422eec1
5.[ExcelPython]上一篇我们用 Python 画图,很多人慨叹代码太简洁了。用 VBA 特复杂。其实,应该这样感慨:如果有一个...https://club.excelhome.net/thread-1589109-1-1.html?_dsign=9c222ba7
1.turtle同样地,每当从 Turtle 方法派生的函数被调用时也都会自动创建一个 Turtle 对象。 要在一个屏幕中使用多个海龟,就必须使用面向对象的接口。帮助与配置 如何使用帮助 Screen 和 Turtle 类的公用方法以文档字符串提供了详细的文档。因此可以利用 Python 帮助工具获取这些在线帮助信息: 当使用 IDLE 时,输入函数/方法调用...https://docs.python.org/zh-cn/3/library/turtle.html
2.Python如何打开绘图功能mob64ca12f6aae1的技术博客在数据分析和可视化领域,Python以其强大的库和工具在众多编程语言中脱颖而出。绘图功能是Python的一个重要特性,能够帮助开发者和数据科学家在探索数据时进行直观展示。本文将深入探讨如何在Python中打开绘图功能,并使用示例代码来创建简单的饼状图。 一、安装必要的库 ...https://blog.51cto.com/u_16213458/12657635
3.pythonpython_matplotlib自动关闭图表显示窗口(python画图自动关闭窗口) 文章目录 code code 使用matplotlib.pylot.pause(showTime) 即可完成显示和定时关闭操作: Run the GUI event loop for interval seconds. If there is an active figure, it will be updated and displayed before the pause, and the...https://www.eolink.com/news/post/16872.html
4.使用Python编写简单的画图板程序的示例教程python这篇文章主要介绍了使用Python编写简单的画图板软件的示例教程,利用到了经常被用来做游戏的pygame模块,需要的朋友可以参考下 从这次开始,我会由简单到困难(其实也不会困难到哪里去)讲几个例程,每一个例程都是我自己写(或者修改,那样的话我会提供原始出处)的,都具有一定的操作性和娱乐性。例程中汇尽量覆盖到以前所...https://www.jb51.net/article/76067.htm
5.用python画图代码Matplotlib利用Python进行绘图这个模块是一个Python上用于进行绘图的模块。做科研的人经常会使用的matlab就是这个模块的一个竞品。就我个人而言,matplotlib感觉更像是一个echarts.js之类前端库的一个后端版本。和echarts一样,它可以支持通过python画出散点图,条状图,饼状图甚至是3D图和动画。 https://blog.csdn.net/q6q6q/article/details/109347074
6.李兴球的博客,少儿Python编程技术前沿–原创,少儿Python编程技术作者李兴球在python 题1.创建一个空集合,增加10个整数,每个整数是从1到100… 阅读更多 4 2 月, 2024 请同学们完善这个Python制作的单词记忆练习小程序 作者李兴球在python import random nd = '小学所有单词.txt… 阅读更多 6 11 月, 2023 机器学习_逻辑回归_海龟画图 ...https://www.lixingqiu.com/
7.Python可视化二维高斯分布腾讯云开发者社区Social LSTM论文中有一张展示行人运动轨迹概率分布的效果图,今天抽空研究下如何用Python可视化二维高斯分布(Gauss Distribution)。 可视化二维高斯分布(Gauss Distribution)本质上是以2D方式展示3D数据(第三维是概率密度),Python中四个matplotlib函数(plt.contour()、plt.contourf()、plt.imshow()、plt.pcolormesh())可以...https://cloud.tencent.com/developer/article/1989696
8.用VScode导入Python的pandas库时出现错误import pandas as pd # 导入pandas数据处理工具包df_ads= pd.read_csv('test.csv') #读入数据df_ads.head(10) #显示前几行数据```python数据可视化必备工具包:一个是python画图工具库Matplotlib,另外一个是统... 来自:开发者社区 基于LAS pyspark 的自有 python 工程使用&依赖导入 如果用户本地有 python ...https://www.volcengine.com/theme/6574186-Y-7-1
9.用Python处理大物实验数据只是画了张图就这么麻烦,很明显,除了练习了 Python 之外,和 Origin 相比生产力负提升。 之后的问题就是简化这些过程了。 两年之后Permalink 经过一年多的开发,我将一些常用的画图和数据处理操作打包成库,并添加了方便的文件输入和自动生成 docx 文件的功能。同时将 Python 包physicsexp发布到了 PyPI(和 AUR 一样,...https://lug.ustc.edu.cn/planet/2021/01/physexp-using-python/