Octave中barplot设置linestyle none后保存仍显边框的问题求助
解决MATLAB堆叠柱状图导出时边框重现的问题
这个问题我之前也碰到过,核心原因是你只设置了linestyle为none,但MATLAB的柱状图(bar)对象的边框显示还受另一个关键属性控制——EdgeColor。默认情况下,EdgeColor是黑色,即使你把线条样式设为无,在导出矢量格式(EPS/PDF)或者某些PNG渲染场景下,还是可能会显现出极细的边框。
正确的解决方案
你需要同时设置EdgeColor为'none',彻底移除边框的渲染:
方法1:创建bar对象时直接指定参数
修改你的代码如下:
data = rand(4, 5); figure h4 = bar(data, "stacked", "linestyle", "none", "EdgeColor", "none"); l4 = legend("Col1", "Col2", "Col3", "Col4", "Col5"); legend(l4, "location", "northeastoutside");
方法2:事后修改已创建的bar对象属性
如果已经生成了bar对象,也可以通过以下代码补改属性:
set(h4, 'EdgeColor', 'none');
额外说明
如果你不想完全移除边缘,而是希望边缘颜色和柱子填充色一致(视觉上也不会有明显边框),可以把EdgeColor设为'flat',这样边缘会自动匹配每个柱子的填充颜色:
h4 = bar(data, "stacked", "linestyle", "none", "EdgeColor", "flat");
这样修改后,不管是在MATLAB界面里查看,还是导出为PNG、EPS或PDF格式,都不会再出现意外的边框了。
内容的提问来源于stack exchange,提问作者Rodrigo Morante
相关产品推荐
相关产品推荐

