Matlab:格式化轮廓标签中的小数

标签 matlab matlab-figure contour

我想减少以下等高线图中的小数位数。我这样做:

[cc,hh] = contour(X,Y,Z,levels,'LineColor','k');hold on
texth = clabel(cc,hh,'FontSize',8);

这让我得到了第一个带有长标签的轮廓。然后为了削减我做的小数:

for i = 1:size(texth); textstr=get(texth(i),'String'); textnum=str2double(textstr); textstrnew=sprintf('%0.0f', textnum) ; set(texth(i),'String',textstrnew); end

这给出了第二个情节。如您所见,标签和轮廓线之间有很大的差距,看起来很糟糕。有什么解决办法吗?

enter image description here

最佳答案

无需修改结果,而是创建具有所需级别的等高线图,这样您就不需要欺骗数据。

定义级别,例如levels=997:1010

然后

contour(X,Y,Z,levels,'LineColor','k','ShowText','on');

将创建一个包含文本的等高线图,级别具体为变量 levels 中的级别,在本例中为 997,998,999,...,1009,1010

如果正如@David 所建议的那样,您的 levels 变量已经是一个向量,则按照他自己的建议将其替换为 round(levels)

关于Matlab:格式化轮廓标签中的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113007/

相关文章:

matlab - 根据 MA​​TLAB 中的数据值使用标记填充颜色

Matlab停止函数的执行

matlab - 如何在 Matlab 绘图中插入两个 X 轴

c++ - 搜索一个轮廓是否存在于另一个轮廓内

matlab - 如何用不同的数据在同一个图上绘制并删除旧的图

matlab - 如何在matlab中删除具有所有相同元素的列?

python - OpenCV, cv2.approxPolyDP() 在闭合轮廓上绘制双线

r - 如何使用 stat_contour 完全填充轮廓

matlab - 使用Matlab检测十字中心点

matlab - 为什么 MATLAB 中的 fix((20.45-20)*60) 与 fix((20)*60) 不相等