向二维直方图添加半透明

add semi-transparency to 2d histogram

我正在尝试制作这样的情节:

我想要一个二维直方图,其条形颜色与高度成正比,并且条形是半透明的。 我尝试将提供的示例放在一起 here

x = randn(100, 2);

figure
hist3(x, [20 20]);


colormap(hot) % heat map
grid on
view(3);
%bar color
set(get(gca,'child'),'FaceColor','interp','CDataMode','auto');
%semitransparency
set(gcf,'renderer','opengl');

结果示例如下:

没有半透明

我不知道这是我的 Matlab 版本 (R2014a) 的问题,还是——更有可能——我搞砸了。也许轴手柄?

下一个 在这个问题之外:我还想添加一个透明表面来插入直方图值(我也遇到了一些问题)。我想我最近在 SO 上看到了类似的东西,但我再也找不到了。有人有点击率吗?

您实际上并未更改示例中的表面透明度。您所做的只是更改渲染器。这是您需要的额外行:

set(get(gca,'child'),'FaceAlpha',0.8);

1 的值是不透明的,0 是不可见的。

您可能还想更改边线透明度:

set(get(gca,'child'),'EdgeAlpha',0.2);