plot - 将列值添加到八度条形图
问题描述
我正在我的 OCTAVE 应用程序中制作新的条形图。由于读数更好,我想为每个条添加实际值。每个条柱的实际值应位于高 Y=50% 上,并与每个条柱居中。我在 google 上进行了搜索,但我没有在 bar 列上找到任何真实的值示例。
上图是一个应该如何看待的示例 - 例如,每个条形列都有红色值。
此条形图的绘制代码:
subplot(5, 1, 5);
y2 = [data1; data2; data3; data4];
x = [1 ,2 ,3, 4];
labels = ["DATANAME1"; "DATANAME2"; "DATANAME3"; "DATANAME4"];
bar (x, y2, 0.5, 'facecolor', [0, 0.5, 1]);
set(gca, 'xticklabel', labels);
title("Something [%]");
xlabel('XLABEL');
ylabel("%");
解决方案
您可以使用该text
命令将任何文本放在/覆盖任何图上。
这是我的建议,我稍微修改了您的代码:
% Data
x = [1, 2, 3, 4];
y2 = [2; 52; 3; 43];
% Original plot
bar(x, y2, 0.5, 'FaceColor', [0, 0.5, 1]);
labels = ['DATANAME1'; 'DATANAME2'; 'DATANAME3'; 'DATANAME4'];
set(gca, 'XTickLabel', labels);
title('Something [%]');
xlabel('XLABEL');
ylabel('%');
% Additional plot
y = max(y2) / 2; % "located on the high Y=50%"
values = [num2str(y2) repelem(' %', 4, 1)];
text( x - 0.1, ... % x values to put text (some negative displacement for "centrally centered with each bar column")
repelem(y, 4, 1), ... % y values to put text (four times y)
values, ... % Actual values as text plus "%" to put
'Color', 'r', ... % Red text
'FontWeight', 'bold'); % Bold text
然后输出如下所示:
我使用的是 Octave 5.1.0,该repelem
命令在 Octave 5.x 之前可能不可用,但有替代方法可以实现repelem
。
请注意,values
(仅)的构造有效,因为y2
它是一个列向量。否则,将“%”添加到每个值y2
可能会更复杂一些。
希望有帮助!
推荐阅读
- go - 如何找到 go 包版本?
- tensorflow - Tensorflow LSTM 排序作为诗歌示例,但使用 3 个浮点数而不是字符串
- typescript - 突变标识函数的隐式或显式返回
- pandas - 熊猫重写函数而不调用apply
- java - 反序列化抽象父类型的构造函数参数时获取 UnresolvedForwardReference
- javascript - Vue:冲突的顺序。添加了以下模块
- python - 带 args 参数的 Python 求和
- sql - 保留 SQLite 中表达式之前的子字符串
- linux - 每秒将“perf stat”输出保存到文件中
- python - sklearn Logistic回归中的C参数是什么?