如何改变给定的boxplot图的'PlotStyle'属性?
给定matlab boxplot的.fig文件(即没有可用的基础数据),是否可以更改PlotStyle属性(从'传统'到'compact')? 解决方案 这个问题有点棘手,因为与MATLAB中的其他图形对象不像MATLAB中的其他图形对象,boxplot是一组行.因此,创建时设置的所有属性都是无法访问的(并且实际上不存在). 解决此问题的一个选项是创建一个"虚拟"框图,然后将其更改为数据.因为BoxPlot没有XData和YData的简单属性,至少不是我们对它们的使用,所以需要做一些工作才能做到这一点. 这是一个简短的代码,可以证明: % this is just to make a figure for example: X = normrnd(10,1,100,1); boxplot(X) % this is the 'Traditional' figure that you load % you start here, after you load you
6 2024-04-03
编程技术问答社区
MATLAB单图中的多个(平行)箱形图
我正在使用MATLAB中的Boxplot函数.我需要为6个" XTICKS"的6个不同数据集绘制框架图.我尝试通过为每个变量设置偏移来操纵" XTICK"属性,但是它不适用于BoxPlot(),因为它对普通绘图().我也无法添加传奇. 一个3个变量等效于我的问题: 编辑: 以下是需要修改的代码段 TreadmillData = randi([20,200],69,6); Speeds = {'1.5mph' '2.5mph' '3.5mph' '4.5mph' '5.5mph' '6.5mph'}; DeviceColors = {'r' 'g' 'c' [0.5 0 0.5] 'b' [1 0.5 0]}; Pedometer1 = TreadmillData(1:7:end,:); Pedometer2 = TreadmillData(2:7:end,:); Pedometer3 = TreadmillData(3:7:end,:); Pedometer4 =
12 2024-04-03
编程技术问答社区
分层分组的boxplot
我想绘制一个带有两组数据进行比较的盒装.我愿意使用我的问题是,我不能将两组数据放在hold on的一张图上. 解决方案 好吧,这不是您要求的,并且不使用该函数hierarchicalBoxplot,但它可能是解决方法.我使用MATLAB示例数据进行了证明: load carsmall % cleaning the data a little Origin = categorical(cellstr(Origin)); MPG(Origin=='Italy') = []; Origin(Origin=='Italy') = []; % this part is just for readability: data1 = MPG; groups1 = Origin; data2 = MPG*3; groups2 = Origin; % And we start: % ============= % we need a wider figure, with a white bac
2 2024-04-03
编程技术问答社区
在图中的点上画圆圈
我有两个矩阵 timeline = [0.0008 0.0012 0.0016 0.0020 0.0024 0.0028]; origdata = 79.8400 69.9390 50.0410 55.5082 34.5200 37.4486 31.4237 27.3532 23.2860 19.3039 79.7600 69.8193 49.8822 55.3115 34.2800 37.1730 31.1044 26.9942 22.8876 18.9061 79.6800 69.6996 49.7233 55.1148 34.0400 36.8975 30.7850 26.6352 22.4891 18.5084 79.6000 69.5799 49.5645 54.9181 33.800
18 2024-04-02
编程技术问答社区
移除Matlab绘图周围的边界
Matlab正在图案周围显示一个黑色边框,我想将其删除.我想我应该使用以下内容: set(Figure#,'PropertyName',PropertyValue); 但我不确定应该使用哪种属性名称或属性值... 编辑: 我尝试了所有建议,包括: set(gca,'box','off'); set(gca,'xcolor','w','ycolor','w','xtick',[],'ytick',[]); axis off; 这个数字仍然有一个黑色的寄宿生,看起来像这样: 编辑2: 这是一个简化的软件包,可复制黑匣子.运行称为" runplot"的脚本.这里是: http://dl.dropbox.com/u/8058705/plottest.zip 我不知道为什么仍然可以看到框.这可能是由于" plottec.m"中的行 axis([-.65 .6 .25 1.32]) % hardwiring axis length since the co
10 2024-04-02
编程技术问答社区
在Matlab中从补丁对象中创建一个位图
i在x,y矩阵中具有一组多边形顶点,y矩阵及其颜色在另一个矩阵中的rgb值c. i然后使用fill()函数来生成在matlab图中显示的补丁对象. 我想从此图中创建一个BMP对象.我所说的BMP对象是像素的x,y坐标和RGB值. 如果我使用print()函数,带有'-dbmp'和文件名,则MATLAB可以将BMP写入文件.但是然后我必须使用iMread()读取文件才能创建BMP对象. 有没有一种方法可以在不写入文件的情况下创建BMP对象? 因为我必须多次执行此操作,并且写作和阅读要耗时很耗时,我猜我也会减少磁盘的寿命. 编辑:根据答案编辑后编码 N = 5; Tri = 100; res = 200; %200 pixles per inch G = zeros(Tri,9,N); X = 2*rand(Tri,3,N); Y = 2*rand(Tri,3,N); R = randi([0 255],Tri,N)/255; G = randi
4 2024-03-31
编程技术问答社区
在MATLAB中创建火山图时出现错误
我是MATLAB的完整新手,我拥有的第一个任务是创建火山地块.我一直在使用我尝试在虚拟值上运行它 - a=[1 2 3] b=[4.6 2.7 4.5] c=[0.05 0.33 0.45] 然后我跑了 - SigStructure = mavolcanoplot(a, b, c) 我的理解是,a代表条件1,条件2和c的基因表达值是a和b中3个数据点的p值列表. . 但是,运行此代码会给我错误 - Index exceeds matrix dimensions. Error in mavolcanoplot (line 127) appdata.effect = X(paramStruct.goodVals) - Y(paramStruct.goodVals); Error in volc (line 4) SigStructure = mavolcanoplot(a, b, c) 任何人都可以解释我出错的地方吗? 解决方案 您正在遇到问题
2 2024-03-31
编程技术问答社区
有两个Y轴的柱状图
我有以下代码,用于MATLAB中的2 Y轴.我很高兴2轴功能功能有效,但是,我想避免棒的重叠.同样,右轴上的类别不仅应该具有不同的颜色,不仅是黄色的,还应以某种方式清楚地将它们绘制在右轴上,而不是左侧的轴上.如何完成? EONMW = [100 399 500]; RWEMW = [200 996 120]; GermanByEON = [0.2 0.4 0.5]; GermanByRWE = [0.1 0.5 0.9]; EONGermanPortfolio = [0.7 0.2 0.1]; RWEGermanPortfolio = [0.8 0.3 0.6]; years = [2010 2012 2014]; % Plot values1 = [EONMW; RWEMW]'; values2 = [GermanByEON; GermanByRWE; EONGermanPortfolio; RWEGermanPortfolio]'; years1 = [years; years
12 2024-03-27
编程技术问答社区
如何将条形图的XtickLabels向左移动?
我目前正在尝试创建一个频率直方图,为此,我必须创建一个条形图,该图形在条之间没有空格.但是,这将XTickLabels居中在酒吧中间.由于它是直方图,因此我希望数值位于每个条形之间的界线,以便可以视觉上指示间隔.本质上,我需要将所有tick标签转移到左侧. 我正在使用R2016A. 浏览数学工程只能使用线图,散点图等来解决如何进行此操作的答案. 解决方案 使用强> v = [6 12 17 21 28 25 19 15]; bar(v,'histc'); 给出: 此外,如果您有兴趣,可以更改刻度标记的方向与以下方式向外: set(gca,'TickDir', 'out') 其他解决方案 您是否尝试使用set命令.例如: %create some data x=1:10; y=rand(1,10); %bar plot bar(x,y) %shift the x to the left 0.4 set(gca, 'XTick', x +.4)
12 2024-03-27
编程技术问答社区
在柱状图/条形图中绘制两个分类数组?
我有一个是/否的分类阵列,种族和一个数组,我想以某种方式创建一个堆叠的条形/直方图图,每个种族都有自己的栏,每个栏都分为两种不同的颜色 - 一个对于说"是"的受访者,其他人则为拒绝的人.有什么方法可以在MATLAB中相对简单地做到这一点?至少有一种方法可以创建一个为每场比赛展示的桌子,有多少人说是,有多少人说不? 澄清,我的数据集中有1250行,每行代表一个人的响应.我将其拆分,因此有一个名为YESNO的名义阵列,即1250x1名义.它具有Y或N.我还有一个名为RACE的名义阵列,即1250x1,并且选择了5种不同的种族. 我想以某种方式制作一个看起来像这样的直方图,我在Tableau中制作了("是"是橙色,蓝色是"否"): 如果我不能这样做,我至少希望能够拥有一个显示每场比赛的桌子,然后有多少响应"是",还有多少个"否". 我试图做以下操作: bar(RACE,YESNO) 我知道XDATA值必须是唯一的. 所以我尝试对数据进行直方图: h
16 2024-03-27
编程技术问答社区
在柱状图上有可变间隔的XTickLabel
我有一个小号,其中条在以下x坐标处: 1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,22,24,26,28,30,35,40,45,50,55,60,70,80,90 我想在XTickLabel上显示这些值,但是当我使用 时 figure(1); Vector = [1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24 26 28 30 35 40 45 50 60 70 80 90] bar(Vector,Vector); xticklabels(Vector); 我得到以下输出,但是我希望我的XTickLabel在相应的值上看起来像Vector: 您可以看到XTickLabel仅到12个,而有些条没有标记. 我尝试使用 set(gca,'Xtick',1:1:Vector(length(Vector))) 但这使用Xtick的线性间隔. 解决方案 AS set(gca,'Xtick',
10 2024-03-27
编程技术问答社区
使用条形函数时,如何在X轴上显示分类数据?
我正在尝试模拟MATLAB官方网站上的代码,但我无法获得相同的输出. 这是代码: c = categorical({'apples','oranges','pears'}); prices = [1.23 0.99 2.3]; bar(c,prices) 这是MATLAB网站上的正确输出: 这是我在MATLAB中获得的输出: c数组,apple,orange和pears未显示在我的MATLAB输出中.我为什么不获得相同的输出? 我的MATLAB版本是R2016A. 解决方案 您可以尝试以下解决方法(如上所述在这里): prices = [1.23 0.99 2.3]; bar(prices) set(gca,'xticklabel',{'apples','oranges','pears'}); 所以,您将摆脱categorical,然后切换到
14 2024-03-27
编程技术问答社区
Matlab条形图:改变条形图的颜色和条形图与轴之间的空间
我有一个棘手的问题,我认为不能简单地回答. 我有一个大数据表,并希望为每个两个相应的平均值保存条形图.我已经用" for loop"做到了这一点,但是我无法将不同的颜色设置为我的条形,也无法在条形和轴之间设置适当的空间. 这是最简单的示例: k = [2 5] bar(k) matlab将这些数据[2 5]视为一个"组",并且不可能更改一个bar的颜色. 当然,当我们有不同的"组"时,颜色是可变的. y = bar([1 2 3; 4 5 6]); y(2).FaceColor = 'red'; 但是我的例子呢?我只需要两个条,我需要以不同的方式上色.另外,我想在每个条和轴之间设置一个很小的空间(再次使用两个条,这并不是那么简单,我不能使用" bar宽度",因为那并不能给我我真正想要的东西). 有人知道如何解决这个问题吗? 感谢您的任何答复! 玛丽 解决方案 可以为每个组添加一个零列: k = [2 5;0 0]; bar(
10 2024-03-27
编程技术问答社区
如何在三维柱状图中为柱状图设置任意的颜色?
说我有一个具有某些值的矩阵Z,我想通过绘制Z Z的值来说明它.想到的第一个解决方案是表面,但是使用surf,并且具有小矩阵的类似功能看起来不好. 所以我考虑使用bar3的3D栏图.但是问题在于,此功能总是由组设置颜色,而不是按高度设置颜色,而我不能这样做. 这是一个示例: Z = peaks(5); subplot 121 surf(Z) title('Surface look bad') subplot 122 bar3(Z) title('The color is not by height') 我试图在bar3返回的手柄中寻找颜色属性(例如CData和FaceColor),但由于所有值以及它们与栏本身的关系而迷失了. 最终,我想拥有一个通用解决方案,该解决方案对于2个矩阵Z和C我可以创建一个3D条图,其高度为Z给出的条,并由C给出颜色. 我该怎么做? 解决方案 函数bar3返回a surface 对象,每个组一个(即每种颜色一个),因此一组中的
16 2024-03-27
编程技术问答社区
在Matlab中对3D绘图中的坐标轴标签进行调整
我用以下MATLAB命令绘制网格数据 [x, y] = meshgrid(-10:0.1:10, -10:0.1:10); z = exp(-x.^2 - y.^2); mesh(x, y, z); xlabel('time variable'); ylabel('space variable'); zlabel('wave'); 您会看到,无论如何旋转轴,X和Y标签始终都水平对齐.当我旋转轴时,有什么方法可以使其与X轴和Y轴保持一致? 解决方案 已经提交了一个提交的轴标签与图形在这里. 其他解决方案 您可以设置每个标签的rotation属性: set(get(gca,'xlabel'),'rotation',angle); %where angle is in degrees
4 2024-03-23
编程技术问答社区
在子图的情况下,如何为所有的X和Y轴设置一个共同的标签?
我使用以下循环获取子图: for j=1:19; Aj=B(j,:); subplot(5,4,j); plot(Aj,h) end 对于所有这些子图,我只需要一个X标签和一个Y标签.这个怎么做?还有如何将传说插入所有子图? 解决方案 您可以使用 示例: subplot(1,2,1); plot(randperm(40)); hold on; plot(randperm(40)); %Plotting some random data legend('show') %To show the legend subplot(1,2,2); plot(randperm(40)); hold on; plot(randperm(40)); %Plotting some random data legend('show') %To show the legend %Using suplabel from the FileExchang
22 2024-03-23
编程技术问答社区
如何在Matlab的一个图中插入两个X轴
我想创建一个具有相同图的双X轴(m/s和km/h)的MATLAB图. 我发现了Plotyy,并且 - 在Matlab的稳态中 - plityyy,但我正在寻找: 双X轴. 在图下面在一起. 我的代码非常简单: stem(M(:, 1) .* 3.6, M(:, 3)); grid on xlabel('Speed (km/h)'); ylabel('Samples'); M(:, 1)是速度(以m/s为单位),M(:, 3)是数据. 我只想在底部的第二行,速度为m/s. 解决方案 您可以执行以下操作.与@benoit_11 的解决方案相比 以下代码使用单位 m/s 创建一个空的X轴b,高度可忽略不计.之后,将实际的绘制绘制在第二个轴a上,位于其他轴上方的位置,并带有单位 km/h .要在特定轴上绘制,请将轴柄插入stem的第一个参数.从 m/s 到 km/h 的转换直接写入stem的呼叫中.最后,需要将两个轴的两个xlim - 范围设
28 2024-03-23
编程技术问答社区
在MATLAB中绘图时保存轴柄
我有脚本处理数字,以便我可以print并将它们输入,并将其输入scale = 1的乳胶文档,一切看起来都不错. 在这种情况下,我想保存图形,轴和传奇手柄. 是否有一种方法可以像使用fig = figure一样保存它们.我知道两个"黑客" 1) nfig = nfig+1; fig = figure(nfig); plot() ax = gca leg = legend() 2) nfig = nfig+1; fig = figure(nfig); ax = subplot(1,1,1) plot() leg = legend() 我的脚本 function fig_set(fig,ax,leg,width,heigth,font_size) %% fig_set removes borders and set witdth and height of figure % % The function fig_set sets the borde
10 2024-03-23
编程技术问答社区
Matlab-尺度的图像色条
如何缩放假颜色图像的colorbar轴? 我读了这篇文章,并复制了代码,但似乎无法正常工作: 请参阅下面的两个图像.在第一个(没有缩放)中,Coloraxis进行 [1 2 3 4 5 6]*10^4 在第二张图像中,它进行 [0.005 0.01 0.015 0.02 0.025] 正确的缩放(使用C = 100000)将为 [0.1 0.2 0.3 0.4 0.5 0.6] 不缩放 错误的缩放 我希望Coloraxis由1/C缩放,并且可以自由选择C,以便当Pixel value = 10^4和C=10^6时,该刻度应显示10^-2. . 我首先将图像乘以C的原因是要获得更多的小数位置,因为低于1的所有值都将显示为零,而无需C缩放. 当我运行代码时,我将获得yticks作为一个具有以下值的工作区变量: [500 1000 1500 2000 2500] 我的代码: RGB = imread('IMG_0
14 2024-03-23
编程技术问答社区
如何在Matlab上将图像和轴一起旋转?
代码1垂直翻转和/或水平不影响axes(); 代码2所建议的解决方案不会产生预期输出 close all; clear all; clc; x = [5 8]; y = [3 6]; C = [0 2 4 6; 8 10 12 14; 16 18 20 22]; C2 = C(:,end:-1:1,:); %# horizontal flip C3 = C(end:-1:1,:,:); %# vertical flip C4 = C(end:-1:1,end:-1:1,:); %# horizontal+vertical flip % https://stackoverflow.com/a/4010203/54964 subplot(2,2,1), imagesc(x,y,C) subplot(2,2,2), imagesc(x,y,C2) subplot(2,2,3), imagesc(x,y,C3) subplot(2,2,4),
12 2024-03-23
编程技术问答社区