我目前在为饼图添加透明度时遇到问题。
我无法使用 FaceAlpha
或 EdgeAlpha
进行设置,并且在编译 eps 文件时单独使用 alpha 会撕裂图表的边缘。
有什么建议吗?
figure;
subplot(1,2,1)
h=pie3(P1,[0 0 0 1 1])
set(h,'EdgeColor','none','LineStyle','none')
hold on
colormap cool
hold on
subplot(1,2,2)
h=pie3([PF PG],[1 0 ],{'X1','X2'})
set(h,'EdgeColor','none')
colormap cool
%alpha(0.5)
print teste -depsc2
最佳答案
pie3
的输出是一个句柄数组。有些是表面的句柄,有些是补丁,有些是文本。您需要选择这些句柄的 子集 实际上具有 EdgeAlpha
和 FaceAlpha
属性。您可以使用 findobj
执行此操作。
h = pie3(rand(1,5), [0 0 0 1 1]);
set(findobj(h, '-property', 'FaceAlpha'), 'FaceAlpha', 0.2);
set(findobj(h, '-property', 'EdgeAlpha'), 'EdgeAlpha', 0);
但是当导出到 EPS 时,不支持透明度。此外,由于您的图形具有透明度,因此 MATLAB 将使用 OpenGL 渲染器,这会导致 EPS 文件无法按照您的预期进行渲染。您可以尝试使用 export_fig
以获得更好的结果。
关于matlab - 如何在matlab上制作透明的饼图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38573063/