plot - Octave:通过颜色混合创建两个直方图

标签 plot octave histogram

我正在 Octave 中在另一个直方图之上创建一个直方图。

    hold on;
    hist(normalData(:, column), 10, 1, "facecolor", "g");
    hist(anomalousData(:, column), 10, 1, "facecolor", "r");
    hold off;

enter image description here

正如您所看到的,存在重叠,红色数据遮盖了一些绿色数据。有没有解决的办法?也许通过在重叠部分混合颜色?

最佳答案

解决你的问题还有很长的路要走。不幸的是,透明度“facealpha”的绘图属性不适用于 hist() 函数。

下面的代码显示了我的解决方法。 默认的图形工具包可能是fltk,所以将其更改为gnuplot。

clear all

graphics_toolkit("gnuplot")

A = randn(1000,1);
B = randn(1000,1)+2;

仍然使用 hist 来计算分布

[y1 x1] = hist(A,10);
[y2 x2] = hist(B,10);

现在我们要将历史数据转换为允许透明的绘图格式。

[ys1 xs1] = stairs(y1, x1);
[ys2 xs2] = stairs(y2, x2);

xs1 = [xs1(1); xs1; xs1(end)];  xs2 = [xs2(1); xs2; xs2(end)];
ys1 = [0; ys1; 0];  ys2 = [0; ys2; 0];

使用填充函数绘制数据

clf
hold on; 
h1=fill(xs1,ys1,"red");
h2=fill(xs2,ys2,"green");

将透明度更改为所需的级别。

set(h1,'facealpha',0.5);
set(h2,'facealpha',0.5);
hold off;

如果我有更多声誉,我会发布图片。

关于plot - Octave:通过颜色混合创建两个直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530944/

相关文章:

json - 使用 jq 生成字段值频率计数

R:无法保存剧情

python - 如何根据连续数据的存在来绘制线条

octave - 将元胞数组导出到多列 csv 文件

python - 从 numpy 直方图获取相等长度的数组或绘制不均匀数组

gnuplot - gnuplot 中带有数字 x 轴的直方图?

python - Python 中的 3D 绘图

r - 数据框的 fiddle 图

matlab - 函数 "triplequad"未返回正确的音量(Octave/Matlab)

file-io - 在 Octave 中保存和加载矩阵的最快文件格式?