2016-05-03 2 views
2

Я пытаюсь сделать сюжет, как этот:добавить полупрозрачность в 2d гистограммы

enter image description here

Я хочу 2D гистограммы с баром цветом, пропорциональной высоту и полупрозрачный барами. Я попытался собрать примеры, представленные 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'); 

В качестве примера результата заключается в следующем:

enter image description here

Полупрозрачность отсутствует.

Я не знаю, является ли это проблемой моей версии Matlab (R2014a) или, если возможно, --- я что-то испортил. Может быть, ось обрабатывает?

Следующая Вне этот вопрос: Я хотел бы также добавить прозрачную поверхность интерполирующего значение гистограммы (у меня тоже некоторые проблемы с этим). Я думаю, что недавно я видел что-то подобное, но я больше не могу его найти. У кого-нибудь есть хиты?

ответ

2

Фактически вы не изменили прозрачность поверхности в своем примере. Все, что вы сделали, это рендеринг изменений. Вот дополнительные линии вы должны:

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

Значение 1 будет непрозрачным, 0 невидимыми.

Вы также можете изменить прозрачность края линии тоже:

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

я попробовать это. Но с 'set (get (gca, 'child'), 'FaceColor', 'interp', 'CDataMode', 'auto', 'FaceAlpha', 0.5),' у баров вообще нет цвета. Кроме того, я не понимаю, как пример mathworks может работать, если 'set (gcf, 'renderer', 'opengl');' просто меняет рендерер – shamalaia

+2

Вам нужно изменить свойство 'FaceAlpha' * и * установить рендерер на 'opengl', поскольку рендеринг OpenGL является единственным, поддерживающим прозрачный рендеринг. – gnovice

+0

Извините, я не понимаю. вы пытались запустить код? Если я это сделаю, то бары просто не имеют никакого цвета. – shamalaia

Смежные вопросы