- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个显示均值和标准差的errorbar
图。我希望有一个圆圈的图例项、均值和一个单独的 条形图项。类似的东西,
--------------------------
| o mean |
| | standard deviation |
--------------------------
errorbar([1 2], [2 3], [0.1 0.2], 'o');
legend('mean +- stddev', 'Location','north')
给我这个
最佳答案
这建立在 Jens Boldsen's answer 之上,它添加了以下内容:
该方法非常通用,因为它支持:
errorbar
的参数。请注意,实际条形图始终绘制为没有标记的实线(使用指定的颜色)。这是根据 errorbar
行为。 该方法因 Matlab 版本而略有不同,因为 R2014b 中引入了图形对象的变化。此外,图例中的误差线可能是水平的或垂直的。所以有四种情况。
绘制数据和图例后,代码遵循以下步骤:
代码已在 Matlab R2010b 中测试。
%// Define graph aspect
color_spec = 'r'; %// color of data and bars.
linestyle_spec = '--'; %// linestyle for data. The bars are always solid
marker_spec = 'o'; %// marker for data
wid = .12; %// width of bar in legend. Normalized units
%// Plot errobar
h_er = errorbar([1 2], [2 3], [0.1 0.2], [color_spec linestyle_spec marker_spec]);
%// Add dummy line for legend (as per Jens Boldsen) and create legend
hold on;
plot(0,0,color_spec); %// linestyle is always solid with no marker
h_le = legend('Mean','Standard deviation','Location','north');
%// Add short lines at each end of line in the legend
c_le = get(h_le, 'Children'); %// step 1
h_li = findobj(c_le, 'linestyle','-', 'color',color_spec, 'marker','none'); %// step 2
h_li = h_li(1); %// in case there's more than one
li_x = get(h_li,'XData'); %// step 3
li_y = get(h_li,'YData');
line(li_x([1 1]), li_y+wid*[-.5 .5], 'parent',h_le, 'color',color_spec); %// step 4
line(li_x([2 2]), li_y+wid*[-.5 .5], 'parent',h_le, 'color',color_spec);
在 Matlab R2014b 中,图例不再是坐标区对象,并且没有子对象。因此,针对案例 I,必须修改步骤 1 和 2:
此外,此 Matlab 版本中的新语法有助于稍微简化代码。
%// Define graph aspect
color_spec = 'r'; %// color of data and bars.
linestyle_spec = '--'; %// linestyle for data. The bars are always solid
marker_spec = 'o'; %// marker for data
wid = .12; %// width of bar in legend. Normalized units
%// Plot errobar
h_er = errorbar([1 2], [2 3], [0.1 0.2], [color_spec linestyle_spec marker_spec]);
%// Add dummy line for legend (as per Jens Boldsen)
hold on;
plot(0,0,color_spec); %// linestyle is always solid with no marker
%// Create legend and add short lines at each end of line in the legend
[~, icons] = legend('Mean','Standard deviation','Location','north'); %// 1
li = findobj(icons, 'type','line', 'linestyle','-'); %// 2
li = li(1); %// in case there's more than one
li_x = li.XData; %// 3
li_y = li.YData;
line(li_x([1 1]), li_y+wid*[-.5 .5], 'parent',li.Parent, 'color',color_spec); %// 4
line(li_x([2 2]), li_y+wid*[-.5 .5], 'parent',li.Parent, 'color',color_spec);
这与情况 I 类似,但需要对线的 x 和 y 坐标进行一些调整。此外,还引入了一个新参数来控制图例中误差条的长度。
%// Define graph aspect
color_spec = 'r'; %// color of data and bars.
linestyle_spec = '--'; %// linestyle for data. The bars are always solid
marker_spec = 'o'; %// marker for data
wid = .04; %// width of bar in legend. Normalized units
len = .45; %// length of main bar in legend. Normalized units
%// Plot errobar
h_er = errorbar([1 2], [2 3], [0.1 0.2], [color_spec linestyle_spec marker_spec]);
%// Add dummy line for legend (as per Jens Boldsen) and create legend
hold on;
plot(0,0,color_spec); %// linestyle is always solid with no marker
h_le = legend('Mean','Standard deviation','Location','north');
%// Add short lines at each end of line in the legend
c_le = get(h_le, 'Children');
h_li = findobj(c_le, 'linestyle','-', 'color',color_spec, 'marker','none');
h_li = h_li(1); %// in case there's more than one
set(h_li,'XData', repmat(mean(get(h_li,'XData')),1,2));
set(h_li,'YData', mean(get(h_li,'YData'))+len*[-.5 .5]);
li_x = get(h_li,'XData');
li_y = get(h_li,'YData');
line(li_x+wid*[-.5 .5], li_y([1 1]), 'parent',h_le, 'color',color_spec);
line(li_x+wid*[-.5 .5], li_y([2 2]), 'parent',h_le, 'color',color_spec);
同样,这与情况 II 类似,但对线的坐标进行了一些调整。
%// Define graph aspect
color_spec = 'r'; %// color of data and bars.
linestyle_spec = '--'; %// linestyle for data. The bars are always solid
marker_spec = 'o'; %// marker for data
wid = .05; %// width of small bars in legend. Normalized units
len = .45; %// length of main bar in legend. Normalized units
%// Plot errobar
h_er = errorbar([1 2], [2 3], [0.1 0.2], [color_spec linestyle_spec marker_spec]);
%// Add dummy line for legend (as per Jens Boldsen)
hold on;
plot(0,0,color_spec); %// linestyle is always solid with no marker
%// Create legend, modify line and add short lines
[~, icons] = legend('Mean','Standard deviation','Location','north');
li = findobj(icons, 'type','line', 'linestyle','-');
li = li(1); %// in case there's more than one
li.XData = repmat(mean(li.XData),1,2);
li.YData = mean(li.YData)+len*[-.5 .5];
li_x = li.XData;
li_y = li.YData;
line(li_x+wid*[-.5 .5], li_y([1 1]), 'parent',li.Parent, 'color',color_spec);
line(li_x+wid*[-.5 .5], li_y([2 2]), 'parent',li.Parent, 'color',color_spec);
关于matlab - 如何为 MATLAB errorbar plot 的点和垂直线设置不同的图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28041629/
我想在80个字符处添加一个标尺。我知道您可以add rulers to CodeMirror,但是我不知道是否应该将the corresponding javascript放在文件中的某个位置,或者放
我正在使用plotly包,并尝试向图形添加水平线。有什么办法使用plotly吗? 可以使用ggplot2和ggplotly函数完成此操作,如下所示: library(plotly) p % add
我想在 org.eclipse.xtext.ui.editor.embedded.EmbeddedEditor 中的 120 个字符后显示一条垂直线(Eclipse 措辞中的打印边距)。这是否以某种方
我的想法是制作一个几乎像 Lollipop 一样的圆圈(在我的例子中是一个矩形)的底部有一条无限长的垂直线。我读到这可以使用 css :after 来完成,但是 psuedoelements 确实限制
我正在尝试使用 Bootstrap 在中间设置一 strip 有按钮的垂直线。 使用Bootstrap简单竖线:
我想知道如何用一条直线连接两个 div 元素,这条直线的距离有点像本网站中的那条线: JSFiddle link: https://jsfiddle.net/mcbvb8m2/ 对于水平和垂直 div
我有一个数字类型的输入,我应该将输入的值格式化为返回字符串的特定格式,因此作为解决方案,我添加了第二个字符串类型的输入并隐藏了输入 [type=number] 但用户只看到输入 [type=strin
我正在尝试创建一个教育时间表。应该有一条垂直线(红色)从“毕业帽”后面开始,然后穿过所有时间线后(绿色)。 这是我到目前为止得到的: .iconspace { position: relati
对于给定的矩形 R1 我试图找出哪些是可以与其相交的其他矩形 IF 我画了一个 vector 线段。 与 R1 相交的矩形标记为红色。 每个矩形都由其(top, left) 和(bottom, rig
我想知道是否可以激活悬停在图形上方的垂直线并突出显示点? 例如,在此图中:http://www.highcharts.com/stock/demo/compare ->将鼠标悬停在图形线上时,每个系列
我需要在我的图文上放置一 strip 有标签的垂直线,例如本例中的国庆节线 - http://www.fusioncharts.com/dev/chart-attributes.html?chart=
IE11不支持播放作品音频文件。这就是为什么我使用 ogv.js javascript库在IE11中播放它的原因。该库将音频数据流传输到IE11的内部Flash Player并进行播放。问题是在并行播
我在 android 中使用 achartengine 图形库制作折线图。有人可以建议我放置十字准线(当用户触摸图表时在所有数据点上移动的垂直线)我的要求符合这样的实现 http://www.jqch
我正在为子菜单项制作 TreeView ,我快完成了。最后一个元素的问题,现在看起来如何: 我想看起来像: DEMO HTML: Example 1
如何像此处那样在我的网页边框周围创建边框? http://www.callieschweitzer.com/ 我尝试做一条水平线,但很难将其与垂直线对齐……不过我觉得有一种更简单的方法。有什么想法吗?
这个问题在这里已经有了答案: What does the vertical pipe ( | ) mean in C++? (4 个答案) 关闭 5 年前。 我用了双竖“||”作为 bool “或”
我使用 Pandoc (http://johnmacfarlane.net/pandoc/README.html) 及其 Markdown 处理器。当我使用 Pandoc 将下面的网格转换为 PDF(
谁能告诉我如何扩展 Chart.js v2.0。我需要折线图中的垂直线,我想实现类似于 http://jsfiddle.net/dbyze2ga/ 的东西. Chart.types.Line.exte
我已经创建了一个自定义通知 XML 文件。我想画一条垂直线,就像下图中的水平线一样。我一直在尝试各种方法无法实现它。 xml 中从水平到垂直的方向对我没有帮助。 查看下面的屏幕截图:我想要垂直线而不是
如何使用标准图像处理过滤器(来自 OpenCV)从图像中去除长水平和垂直线? 图像是黑白的,所以删除意味着简单地涂成黑色。 插图: 我目前正在用 Python 执行此操作,遍历像素行和列并检测连续像素
我是一名优秀的程序员,十分优秀!