iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >基于Matlab怎么绘制小提琴图
  • 867
分享到

基于Matlab怎么绘制小提琴图

2023-06-30 13:06:48 867人浏览 安东尼
摘要

今天小编给大家分享一下基于Matlab怎么绘制小提琴图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。violinChart

今天小编给大家分享一下基于Matlab怎么绘制小提琴图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

基于Matlab怎么绘制小提琴图

violinChart 函数使用方法

写了个matlab绘制小提琴图的函数:

基于Matlab怎么绘制小提琴图

图中小提琴状区域为核密度曲线。

白色方块为25%,75%分位数。

中间横线为中位数。

白色点为离群值点。

竖着的黑线是去掉离群值点后点的上下限。

基础使用,Y为矩阵

X=1:5;Y=randn(100,5);violinChart(GCa,X,Y,[0 0.447 0.741],0.6);

基于Matlab怎么绘制小提琴图

  • X | 横坐标。

  • Y | 数据集。

  • FaceColor | 颜色,示例用的是[0 0.447 0.741]。

  • width | 小提琴图宽度,这里取的是0.6,就是以两个小提琴图间距的0.6倍为概率密度的上限1。

基础使用,Y为向量,X为标签

X=[1.*ones(1,50),2.*ones(1,30),3.*ones(1,20),4.*ones(1,50),5.*ones(1,50)];Y=randn(1,200)+sin(X);violinChart(gca,X,Y,[0 0.447 0.741]);

基于Matlab怎么绘制小提琴图

基础使用,多个图像绘制,并添加图例

X1=[1:2:7,13];Y1=randn(100,5)+sin(X1);X2=2:2:10;Y2=randn(100,5)+cos(X2);figureHdl1=violinChart(gca,X1,Y1,[0     0.447 0.741]);Hdl2=violinChart(gca,X2,Y2,[0.850 0.325 0.098]);legend([Hdl1.F_legend,Hdl2.F_legend],{'randn+sin(x)','randn+cos(x)'});

基于Matlab怎么绘制小提琴图

violinChart 完整函数

若函数有更新则会将更新版本放入文末所示压缩文件内。

function Hdl=violinChart(ax,X,Y,FaceColor,width)% @author slandarer% Hdl: 返回的图形对象句柄结构体% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -% Hdl.F_density(i)   | patch   | 核密度分布% Hdl.F_outlier(i)   | scatter | 离群值点% Hdl.F_range95(i)   | line    | 去除离群值点后最大值及最小值% Hdl.F_quantile(i)  | patch   | 四分位数框% Hdl.F_medianLine(i)| line    | 中位数%% Hdl.F_legend       | patch   | 用于生成legend图例的图形对象% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -% 请使用如下方式生成图例:% Hdl1=violinChart(ax,X,Y,... ...)% Hdl2=violinChart(ax,X,Y,... ...)% ... ...% legend([Hdl1,Hdl2,... ...],{Name1,Name2,...})% ===========================================================% 以下为使用实例代码:% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -% X1=[1:2:7,13];% Y1=randn(100,5)+sin(X1);% X2=2:2:10;% Y2=randn(100,5)+cos(X2);% % Hdl1=violinChart(gca,X1,Y1,[0     0.447 0.741],0.5);% Hdl2=violinChart(gca,X2,Y2,[0.850 0.325 0.098],0.5);% legend([Hdl1.F_legend,Hdl2.F_legend],{'randn+sin(x)','randn+cos(x)'});if nargin<5    width=0.4;endif ~isempty(ax)else    ax=gca;endhold(ax,'on');oriX=X;X=unique(X);sep=min(diff(X));if isempty(sep)    sep=1;endfor i=1:length(X)    if length(oriX)==numel(Y)        tY=Y(oriX==X(i));    else        tY=Y(:,i);    end    [f,yi]=ksdensity(tY);    Hdl.F_density(i)=fill([f,-f(end:-1:1)].*sep.*width+X(i),[yi,yi(end:-1:1)],FaceColor);        outliBool=isoutlier(tY,'quartiles');    outli=tY(outliBool);    Hdl.F_outlier(i)=scatter(repmat(X(i),[length(outli),1]),outli,20,'filled',...                    'CData',[1 1 1],'MarkerEdgeColor','none');    nY=tY(~outliBool);    Hdl.F_range95(i)=plot([X(i),X(i)],[min(nY),max(nY)],'k','lineWidth',1);        Qt25=quantile(tY,0.25);    qt75=quantile(tY,0.75);        Hdl.F_quantile(i)=fill(X(i)+0.6.*sep.*width.*[-1 1 1 -1].*max(f),...                    [qt25,qt25,qt75,qt75],[1 1 1],...                    'EdgeColor',[0 0 0]);                    med=median(tY);    Hdl.F_medianLine(i)=plot(X(i)+0.6.*sep.*width.*[-1 1].*max(f),[med,med],'LineWidth',3,...                    'Color',[0 0 0]);endHdl.F_legend=Hdl.F_density(1);end

ggtheme violin 函数介绍

假设你已经编写了上述绘图代码,只需要将最后增添一行变为

X1=[1:2:7,13];Y1=randn(100,5)+sin(X1);X2=2:2:10;Y2=randn(100,5)+cos(X2);figureHdl1=violinChart(gca,X1,Y1,[0     0.447 0.741]);Hdl2=violinChart(gca,X2,Y2,[0.850 0.325 0.098]);legend([Hdl1.F_legend,Hdl2.F_legend],{'randn+sin(x)','randn+cos(x)'});ggThemeViolin(gca,[Hdl1,Hdl2],'dust');

则图像会被修饰:

基于Matlab怎么绘制小提琴图

而将函数最后加入&lsquo;LP&rsquo;参数则变为:

ggThemeViolin(gca,[Hdl1,Hdl2],'dust','LP');

基于Matlab怎么绘制小提琴图

ggtheme violin 主题

主题有如下选择:

'flat'/'flat_dark'/'camouflage'/'chalk'/
'copper'/'dust'/'earth'/'fresh'/'grape'/
'grass'/'greyscale'/'light'/'lilac'/'pale'/
'sea'/'sky'/'solarized'

'flat'

基于Matlab怎么绘制小提琴图

'flat_dark'

基于Matlab怎么绘制小提琴图

'camouflage'

基于Matlab怎么绘制小提琴图

'chalk'

基于Matlab怎么绘制小提琴图

'copper'

基于Matlab怎么绘制小提琴图

'dust'

基于Matlab怎么绘制小提琴图

'earth'

基于Matlab怎么绘制小提琴图

'fresh'

基于Matlab怎么绘制小提琴图

'grape'

基于Matlab怎么绘制小提琴图

'grass'

基于Matlab怎么绘制小提琴图

'greyscale'

基于Matlab怎么绘制小提琴图

'light'

基于Matlab怎么绘制小提琴图

'lilac'

基于Matlab怎么绘制小提琴图

'pale'

基于Matlab怎么绘制小提琴图

'sea'

基于Matlab怎么绘制小提琴图

'sky'

基于Matlab怎么绘制小提琴图

'solarized'

基于Matlab怎么绘制小提琴图

ggtheme violin 修饰函数代码

注意,要使用ggThemeViolin修饰器函数,需要保证当前文件夹有themeCSS.mat文件,该文件将会一同在压缩包内给出。

function ax=ggThemeViolin(varargin)% @author:slandarer% % 参数说明:% -----------------------------------------------------% AxesTheme   | 坐标区域风格       | 'flat'/'flat_dark'/'camouflage'/'chalk'/%                                    'copper'/'dust'/'earth'/'fresh'/'grape'/%                                    'grass'/'greyscale'/'light'/'lilac'/'pale'%                                    'sea'/'sky'/'solarized'%% HDLset      | 句柄集合    % 获取要处理的坐标区域=====================================================if strcmp(get(varargin{1},'type'),'axes' )    ax=varargin{1};else    ax=gca;endhold(ax,'on')% 获取要处理的图像句柄=====================================================HDLset=varargin{2};% 获取风格名称=============================================================theme.AxesTheme='flat';if length(varargin)>2    theme.AxesTheme=varargin{3};end% 开始风格化===============================================================ax.Box='off';ax.YGrid='on';ax.XGrid='on';ax.GridLineStyle='--';ax.LineWidth=1.2;% 主题风格化Tm=load('themeCSS.mat');Tm=Tm.theme;ax.Color=Tm.(theme.AxesTheme).Color;ax.TickLength=Tm.(theme.AxesTheme).TickLength;ax.GridColORMode=Tm.(theme.AxesTheme).GridColorMode;ax.GridColor=Tm.(theme.AxesTheme).GridColor;ax.GridAlpha=Tm.(theme.AxesTheme).GridAlpha;ax.XColor=Tm.(theme.AxesTheme).XColor;ax.YColor=Tm.(theme.AxesTheme).YColor;ax.TickDir=Tm.(theme.AxesTheme).TickDir;ax.ColorOrder=Tm.(theme.AxesTheme).ColorOrder;for i=1:length(HDLset)    for j=1:length(HDLset(i).F_density)        HDLset(i).F_density(j).FaceColor=ax.ColorOrder(mod(i-1,size(ax.ColorOrder,1))+1,:);        HDLset(i).F_density(j).EdgeColor=[.1,.1,.1];                f_max=(max(HDLset(i).F_density(j).XData)-min(HDLset(i).F_density(j).XData))/2;        x_mid=(max(HDLset(i).F_density(j).XData)+min(HDLset(i).F_density(j).XData))/2;        HDLset(i).F_quantile(j).XData=x_mid+0.4.*f_max.*[-1 1 1 -1];        HDLset(i).F_quantile(j).FaceColor=[1 1 1].*0.95;                HDLset(i).F_medianLine(j).XData=x_mid+0.4.*f_max.*[-1 1];        HDLset(i).F_medianLine(j).LineWidth=2;        HDLset(i).F_medianLine(j).Color=[0.3,0.3,0.3];                HDLset(i).F_outlier(j).CData=Tm.(theme.AxesTheme).EdgeColor;    end    endif ~isempty(ax.Legend)    ax.Legend.Box='off';    ax.Legend.FontSize=12;    if mean(ax.Color)>0.6        ax.Legend.TextColor=ax.XColor;    else        ax.Legend.TextColor=[0.9 0.9 0.9];    end    if ~isempty(regexpi(ax.Legend.Location,'out', 'once'))        ax.Legend.TextColor=ax.XColor;        ax.Legend.Title.FontSize=14;    end    ax.Legend.AutoUpdate='off';endend

以上就是“基于Matlab怎么绘制小提琴图”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: 基于Matlab怎么绘制小提琴图

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Matlab怎么绘制小提琴图
    今天小编给大家分享一下基于Matlab怎么绘制小提琴图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。violinChart ...
    99+
    2023-06-30
  • Matlab怎么绘制小提琴图
    这篇文章主要为大家展示了“Matlab怎么绘制小提琴图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Matlab怎么绘制小提琴图”这篇文章吧。1使用示例基础使用,Y为矩阵X=1:5;Y=rand...
    99+
    2023-06-29
  • 基于Matlab绘制小提琴图的示例代码
    目录violinChart 函数使用方法基础使用,Y为矩阵基础使用,Y为向量,X为标签基础使用,多个图像绘制,并添加图例violinChart 完整函数ggtheme violin ...
    99+
    2024-04-02
  • 详解Matlab如何绘制小提琴图
    目录1使用示例基础使用,Y为矩阵基础使用,Y为向量,X为标签基础使用多个图像绘制,并添加图例2完整代码写了个matlab绘制小提琴图的函数: 1.图中小提琴状区域为核密度曲线 2.白...
    99+
    2024-04-02
  • Matlab怎么绘制桑基图
    这篇文章主要为大家展示了“Matlab怎么绘制桑基图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Matlab怎么绘制桑基图”这篇文章吧。这次主要是分享自己写的一个函数,用来绘制桑基图,效果大概...
    99+
    2023-06-29
  • 基于Matlab实现山脊图的绘制
    目录纯色山脊图模板渐变色山脊图模板写了一个用于绘制山脊图的模板,仅需要往需要填写数据的区域填入数据点击运行即可,以下提供两款模板,第一款为纯色模板而第二款为渐变色模板: 纯色山脊图模...
    99+
    2024-04-02
  • R语言绘制小提琴图violinplot实现示例
    目录Step1. 绘图数据的准备Step2. 绘图数据的读取Step3.绘图所需package的安装、调用Step4.绘图Step5.美化即便小仙同学决定学习R语言来提升自己作图的&...
    99+
    2024-04-02
  • 基于Matlab绘制洛伦兹吸引子相图
    目录1.公式及Lorenz函数2.混沌吸引子图像3.混沌吸引子图像4.封面图绘制洛伦兹吸引子(Lorenz attractor)是由MIT大学的气象学家Edward Lorenz在1...
    99+
    2024-04-02
  • Python怎么调用Matplotlib绘制振动图、箱型图和提琴图
    本篇内容介绍了“Python怎么调用Matplotlib绘制振动图、箱型图和提琴图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Matplo...
    99+
    2023-06-21
  • R语言绘制Facetviolinplot小提琴刻面图实现示例
    目录Step1. 绘图数据的准备Step2. 绘图数据的读取Step3.绘图所需package的安装、调用Step4. 绘图Step5.美化老铁们,许久未见啦。顺便说一下,最近可不是...
    99+
    2024-04-02
  • R语言绘制数据可视化小提琴图Violinplotwithdot画法
    目录Step1. 绘图数据的准备Step2. 绘图数据的读取Step3. 绘图所需package的安装、调用Step4. 绘图小提琴图之前已经画过了,不过最近小仙又看到一种貌美的画法...
    99+
    2024-04-02
  • Matlab怎么绘制雨云图
    本篇内容主要讲解“Matlab怎么绘制雨云图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Matlab怎么绘制雨云图”吧!介绍写了俩代码模板,用来绘制横向云雨图与纵向云雨图,云雨图其实就是用把小...
    99+
    2023-06-30
  • Python调用Matplotlib绘制振动图、箱型图和提琴图
    目录Matplotlib介绍振动图箱型图提琴图Matplotlib介绍 Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy  ...
    99+
    2024-04-02
  • 基于Matlab实现离散系统分岔图的绘制
    目录1.一维离散分岔图2.二维离散分岔图3.封面图绘制1.一维离散分岔图 一维那非常简单哈,就循环着画呗,以下举两个简单的例子 : % x(n+1)=1-r*x(n)^2 % ...
    99+
    2024-04-02
  • 详解Matlab如何绘制桑基图
    目录详细用法1使用示例2输入参数3输出函数完整代码使用示例代码这次主要是分享自己写的一个函数,用来绘制桑基图,效果大概是下面这样子: 先说明函数(sankey2)怎么用,函数完...
    99+
    2024-04-02
  • R语言数可视化Split violin plot小提琴图绘制方法
    最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起。为了跟上可视化的潮流,小仙也...
    99+
    2024-04-02
  • Python编程matplotlib绘图挑钻石seaborn小提琴和箱线图
    目录箱线图增强箱线图小提琴图想不到大家都这么喜欢用python给女朋友挑钻石,所以我又写了个续。 如果看过之前一篇用python挑钻石的文章,那么可以直接从箱线图开始读。 seabo...
    99+
    2024-04-02
  • Matlab怎么绘制散点密度图
    小编给大家分享一下Matlab怎么绘制散点密度图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果原理也很简单,通过matlab自带的ksdensity获得网格每...
    99+
    2023-06-29
  • 基于Python matplotlib库怎么绘制箱线图
    这篇文章主要介绍了基于Python matplotlib库怎么绘制箱线图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Python matplotlib库怎么绘制箱线图文章都会有所收获,...
    99+
    2023-06-30
  • matlab怎么绘制正态概率图
    在MATLAB中,可以使用normplot函数绘制正态概率图。以下是绘制正态概率图的步骤:1. 创建一个包含样本数据的向量,例如:`...
    99+
    2023-09-12
    matlab
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作