返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >如何利用Matlab绘制出好看的火山图
  • 895
分享到

如何利用Matlab绘制出好看的火山图

2024-04-02 19:04:59 895人浏览 泡泡鱼
摘要

这里画了一个示例: 数据来源 绘制效果: 代码及说明: 使用代码时只需要改一开始导入的数据,和代码提示中X坐标区域范围和Y坐标区域范围,完整代码如下所示: % 读取数据 data=

这里画了一个示例:

数据来源

绘制效果:

代码及说明:

使用代码时只需要改一开始导入的数据,和代码提示中X坐标区域范围和Y坐标区域范围,完整代码如下所示:

% 读取数据
data=readmatrix('volcano.txt');
logFC=data(:,2);
padj=data(:,3);

DB_not=(padj>0.5)|(logFC<0.5&logFC>-0.5);
DB_up=padj<=0.05&logFC>=0.5;
DB_down=padj<=0.05&logFC<=-0.5;

ax=GCa;
hold(ax,'on');
grid(ax,'on');

% 需要适度调整的属性:坐标区域范围及刻度===================================
ax.XLim=[-5,5];
ax.YLim=[-10,300];
ax.XTick=-5:2.5:5;
ax.YTick=0:50:300;
% =========================================================================
ax.XLabel.String='log_2(FoldChange)';
ax.XLabel.FontSize=14;
ax.XLabel.FontName='Cambria';
ax.XLabel.FontWeight='bold';
ax.YLabel.String='-log_{10}(padj)';
ax.YLabel.FontSize=14;
ax.YLabel.FontName='Cambria';
ax.YLabel.FontWeight='bold';

ax.Color=[235,235,235]./255;
ax.GridColor=[1 1 1];
ax.LineWidth=1.4;
ax.GridAlpha=0.5;
ax.XColor=[44,62,80]./255;
ax.YColor=[44,62,80]./255;
Hdl_not=scatter(logFC(DB_not),-log(padj(DB_not))./log(10),30,'filled',...
    'MarkerFaceColor',[190,190,190]./255,'MarkerEdgeColor',[190,190,190]./255,...
    'MarkerFaceAlpha',0.6);
Hdl_up=scatter(logFC(DB_up),-log(padj(DB_up))./log(10),30,'filled',...
    'MarkerFaceColor',[196,88,62]./255,'MarkerEdgeColor',[196,88,62]./255,...
    'MarkerFaceAlpha',0.6);
Hdl_down=scatter(logFC(DB_down),-log(padj(DB_down))./log(10),30,'filled',...
    'MarkerFaceColor',[1,114,182]./255,'MarkerEdgeColor',[1,114,182]./255,...
    'MarkerFaceAlpha',0.6);

plot([ax.XLim(1),ax.XLim(2)],[-log(0.05)/log(10),-log(0.05)/log(10)],...
    'LineWidth',1.2,'Color',[.2,.2,.2],'LineStyle','-.')
plot([-0.5,-0.5],[ax.YLim(1),ax.YLim(2)],...
    'LineWidth',1.2,'Color',[.2,.2,.2],'LineStyle','-.')
plot([0.5,0.5],[ax.YLim(1),ax.YLim(2)],...
    'LineWidth',1.2,'Color',[.2,.2,.2],'LineStyle','-.')

lgd=legend(ax,[Hdl_up,Hdl_not,Hdl_down],{'up','not','down'});
lgd.Title.String='threshold';
lgd.FontSize=12;
lgd.Title.FontSize=13;
lgd.EdgeColor=[44,62,80]./255;
lgd.TextColor=[44,62,80]./230;
lgd.FontName='Cambria';
lgd.Location='best';

可以看到各种参数设置颇多,一切为了画图质量hiahiahia,要是懒得设置建议直接发复制粘贴,有更强的审美的可以自行改写嗷。

如果希望显示显示坐标区域外的点,请使用如下代码:

% 读取数据
data=readmatrix('volcano.txt');
logFC=data(:,2);
padj=data(:,3);

DB_not=(padj>0.5)|(logFC<0.5&logFC>-0.5);
DB_up=padj<=0.05&logFC>=0.5;
DB_down=padj<=0.05&logFC<=-0.5;

ax=gca;
hold(ax,'on');
grid(ax,'on');

% 需要适度调整的属性:坐标区域范围及刻度===================================
ax.XLim=[-8,8];
ax.YLim=[-10,200];
ax.XTick=-5:2.5:5;
ax.YTick=0:50:300;
% ==========================================================================
DB_down_out=(-log(padj)./log(10)>ax.YLim(2)&logFC<=-0.5)|logFC<ax.XLim(1);
DB_down_out_Set=[logFC(DB_down_out),-log(padj(DB_down_out))./log(10)];
DB_down_out_Set(DB_down_out_Set(:,1)<ax.XLim(1),1)=ax.XLim(1);
DB_down_out_Set(DB_down_out_Set(:,2)>ax.YLim(2),2)=ax.YLim(2);

DB_up_out=(-log(padj)./log(10)>ax.YLim(2)&logFC>=0.5)|logFC>ax.XLim(2);
DB_up_out_Set=[logFC(DB_up_out),-log(padj(DB_up_out))./log(10)];
DB_up_out_Set(DB_up_out_Set(:,1)>ax.XLim(2),1)=ax.XLim(2);
DB_up_out_Set(DB_up_out_Set(:,2)>ax.YLim(2),2)=ax.YLim(2);

% =========================================================================
ax.XLabel.String='log_2(FoldChange)';
ax.XLabel.FontSize=14;
ax.XLabel.FontName='Cambria';
ax.XLabel.FontWeight='bold';
ax.YLabel.String='-log_{10}(padj)';
ax.YLabel.FontSize=14;
ax.YLabel.FontName='Cambria';
ax.YLabel.FontWeight='bold';

ax.Color=[235,235,235]./255;
ax.GridColor=[1 1 1];
ax.LineWidth=1.4;
ax.GridAlpha=0.5;
ax.XColor=[44,62,80]./255;
ax.YColor=[44,62,80]./255;
Hdl_not=scatter(logFC(DB_not),-log(padj(DB_not))./log(10),30,'filled',...
    'MarkerFaceColor',[190,190,190]./255,'MarkerEdgeColor',[190,190,190]./255,...
    'MarkerFaceAlpha',0.6);
Hdl_up=scatter(logFC(DB_up),-log(padj(DB_up))./log(10),30,'filled',...
    'MarkerFaceColor',[196,88,62]./255,'MarkerEdgeColor',[196,88,62]./255,...
    'MarkerFaceAlpha',0.6);
Hdl_down=scatter(logFC(DB_down),-log(padj(DB_down))./log(10),30,'filled',...
    'MarkerFaceColor',[1,114,182]./255,'MarkerEdgeColor',[1,114,182]./255,...
    'MarkerFaceAlpha',0.6);

% -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
scatter(DB_up_out_Set(:,1),DB_up_out_Set(:,2),30,'filled','Marker','+',...
    'MarkerFaceColor',[196,88,62]./255,'MarkerEdgeColor',[196,88,62]./255,...
    'MarkerFaceAlpha',0.6,'LineWidth',1);

scatter(DB_down_out_Set(:,1),DB_down_out_Set(:,2),30,'filled','Marker','+',...
    'MarkerFaceColor',[1,114,182]./255,'MarkerEdgeColor',[1,114,182]./255,...
    'MarkerFaceAlpha',0.6,'LineWidth',1);
% -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -

plot([ax.XLim(1),ax.XLim(2)],[-log(0.05)/log(10),-log(0.05)/log(10)],...
    'LineWidth',1.2,'Color',[.2,.2,.2],'LineStyle','-.')
plot([-0.5,-0.5],[ax.YLim(1),ax.YLim(2)],...
    'LineWidth',1.2,'Color',[.2,.2,.2],'LineStyle','-.')
plot([0.5,0.5],[ax.YLim(1),ax.YLim(2)],...
    'LineWidth',1.2,'Color',[.2,.2,.2],'LineStyle','-.')

lgd=legend(ax,[Hdl_up,Hdl_not,Hdl_down],{'up','not','down'});
lgd.Title.String='threshold';
lgd.FontSize=12;
lgd.Title.FontSize=13;
lgd.EdgeColor=[44,62,80]./255;
lgd.TextColor=[44,62,80]./230;
lgd.FontName='Cambria';
lgd.Location='best';

到此这篇关于如何利用Matlab绘制出好看的火山图的文章就介绍到这了,更多相关Matlab绘制火山图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何利用Matlab绘制出好看的火山图

本文链接: https://lsjlt.com/news/140921.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何利用Matlab绘制出好看的火山图
    这里画了一个示例: 数据来源 绘制效果: 代码及说明: 使用代码时只需要改一开始导入的数据,和代码提示中X坐标区域范围和Y坐标区域范围,完整代码如下所示: % 读取数据 data=...
    99+
    2024-04-02
  • 利用Matlab绘制好看的旋转九边形
    目录PART.0 使用效果 PART.1 程序说明 PART.2 完整代码PART.0 使用效果  PART.1 程序说明 这个...
    99+
    2024-04-02
  • 如何利用Matlab绘制有趣图像
    这篇文章主要介绍了如何利用Matlab绘制有趣图像,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.随机樱花树function sakura% @auth...
    99+
    2023-06-29
  • 利用Python绘制好看的玫瑰花图
    目录一、基本极坐标图二、极半径图参数介绍三、画玫瑰花图AngleAxisOpts参数介绍:TooltipOpts参数介绍:开始画玫瑰花图今天主要给大家介绍如何用pyecharts画各...
    99+
    2024-04-02
  • 怎么使用Matlab绘制花里胡哨的山脊图
    这篇“怎么使用Matlab绘制花里胡哨的山脊图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Matlab绘制花里胡哨...
    99+
    2023-07-05
  • 利用Matlab绘制优美的k线图
    目录效果代码效果一 极光效果二 暖调效果三 黑白本期又是一个花里胡哨的数据可视化,前两天刷到了耐克的视觉设计师Gladys Orteza绘制的k线图作品,把沉闷的股票图变成了精彩的风...
    99+
    2024-04-02
  • 利用Matlab绘制地图的超详细教程
    目录MappingToolbox工具箱安装局部区域陆地绘制映射贴图纹理贴图线路图绘制usamapaxesm一些地图绘制可用简易函数subplottightmap边框标签网格快速开关函...
    99+
    2024-04-02
  • 利用Matlab实现阴影柱状图的绘制
    目录示例图使用教程1.基本使用2.添加图例3.阴影格式4.特殊结构5.额外修饰工具函数完整代码封面图绘制代码阴影柱状图绘制的代码MATHWORKS上也有,不过是生成图片后,识别图像上...
    99+
    2024-04-02
  • 利用Matlab绘制甘特图的方法详解
    目录前言工具函数完整代码使用方法基本使用不咋好看的圆角修改Y轴标签添加每个任务上的文本信息单独修改任务标签信息修改颜色前言 好久不见哈,今天带来一个不咋炫酷但是比较实用的甘特图绘制,...
    99+
    2022-11-13
    Matlab绘制甘特图 Matlab 甘特图
  • 利用Matlab绘制有趣图像的示例代码
    目录1.随机樱花树2.苹果绘制3.南瓜绘制4.一堆三角形绘制5.月饼绘制6.大钻石绘制7.有趣曲线18.有趣曲线29.有趣曲线3——蝴蝶曲线10.有趣曲线4&...
    99+
    2024-04-02
  • 利用Python Matlab绘制曲线图的实例分析
    利用Python Matlab绘制曲线图的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、简介我们在这里采用Python中的matplotl...
    99+
    2023-06-22
  • 利用Python Matlab绘制曲线图的简单实例
    目录一、简介二、绘制图形1、第一个曲线图2、第二个图形3、第三个图形4、第四个图形5.画出指定区间的一个多项式函数:总结一、简介 我们在这里采用Python中的matplotlib来...
    99+
    2024-04-02
  • 如何利用Python pyecharts绘制饼图
    这篇文章主要为大家展示了“如何利用Python pyecharts绘制饼图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用Python pyecharts绘制饼图”这篇...
    99+
    2023-06-22
  • 如何绘制好看的数据库基本流程图
    这篇文章主要讲解了“如何绘制好看的数据库基本流程图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何绘制好看的数据库基本流程图”吧!专业的图形图表软件,让流...
    99+
    2024-04-02
  • 利用Matlab绘制各类特殊图形的实例代码
    Matlab绘图介绍 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为...
    99+
    2024-04-02
  • 如何使用python数据可视化Seaborn绘制山脊图
    这篇文章主要介绍如何使用python数据可视化Seaborn绘制山脊图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 引言山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x...
    99+
    2023-06-22
  • 如何利用python绘制等高线图
    目录使用方法添加label的绘制虚线level设置颜色和线条宽度其他设置使用方法 matplotlib.pyplot.contour(*args, data=None, **kwar...
    99+
    2024-04-02
  • 如何利用vue3.x绘制流程图
    这篇文章主要介绍“如何利用vue3.x绘制流程图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何利用vue3.x绘制流程图”文章能帮助大家解决问题。下面是效果图:整体结构布局:需要实现的功能列表:...
    99+
    2023-07-02
  • 如何利用pyecharts画好看的饼状图
    前言 使用的pyecharts是v1.0 这里需要注意,pyecharts0.5的版本和v1.0以上的版本完全不一样,可以说是两个包 该包能够方便快捷的绘制图形 饼状图 圆环 代码...
    99+
    2024-04-02
  • 如何利用pyecharts绘制地理散点图
    小编给大家分享一下如何利用pyecharts绘制地理散点图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.背景利用上海市7000+办公楼项目,包括项目名称,地理位置,每天的租金,建筑面积和项目所在的商圈,现在要让这些项目...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作