在 Matlab 中缩放散点图中的文本

Posted

技术标签:

【中文标题】在 Matlab 中缩放散点图中的文本【英文标题】:Zooming text in scatter plot in Matlab 【发布时间】:2016-04-08 22:28:14 【问题描述】:

有什么方法可以在 matlab 中放大散点图中的文本?假设我有以下代码:

x = 1:10; y = 1:10; scatter(x,y);
a = [1:10]'; b = num2str(a); c = cellstr(b);
dx = 0.1; dy = 0.1; 
text(x+dx, y+dy, c);

当我分别单击缩小按钮时,我想放大和缩小与每个数据点关联的 1,2,3,4,5,6,7,8,9,10 的文本大小.我正在使用 matlab r2015b。

编辑 1 例如,当我单击放大按钮时,c 也将与图形的其余部分一起放大,如果我单击缩小,按钮 c 也将与图形的其余部分一起缩小

【问题讨论】:

我编辑问题。并添加一个数字。请检查一下。 【参考方案1】:

当您在 MATLAB 中打开图形时,您应该在屏幕顶部打开一个菜单栏。

选择:视图->属性编辑器

您可以在此处单击要编辑的文本,并使用屏幕底部的 GUI 设置大小/颜色/字体的格式。

【讨论】:

图中出现文字1 2 3 4。我不是在谈论 x 或 y 轴标签。我的问题是当我放大或缩小图形时如何缩放图中的文本(而不是轴标签) @jubair 答案不仅限于轴标签,它也适用于更改文本对象的属性。 如果你想这样做,你总是需要手动放大和缩小。问题不在于如何手动处理。答案无论如何都不能满足问题。请参阅我在下面发布的解决方案。【参考方案2】:

我得到了解决方案。我们需要使用缩放ActionPostCallback的回调函数,并传递一个文本对象的附加参数。然后我们需要从回调中调整缩放级别。

f = figure
x = 1:10; y = 1:10; scatter(x,y);
a = [1:10]'; b = num2str(a); c = cellstr(b);
dx = 0.1; dy = 0.1; 
s = text(5, 5, 'c', 'fontsize',1);
h = zoom(f);

set(h, 'ActionPostCallback', @mypostcallback,s);

function [ ] = mypostcallback(obj,event_obj,s)
xlim = event_obj.Axes.XLim;
fontsize = 10/(xlim(2)-xlim(1));
set(s,'fontsize',fontsize);

end

【讨论】:

以上是关于在 Matlab 中缩放散点图中的文本的主要内容,如果未能解决你的问题,请参考以下文章

matlab中画散点图时怎样在每个点上标记符号?

在 MATLAB 中创建包含散点图和正态图的图例

MATLAB散点图中的线性回归线

R语言ggplot2可视化绘制散点图(scatter plot)使用gghighlight包突出高亮散点图中的特定数据点并添加文本标签(highlight and text annotation)

如何避免在散点图中重叠文本?

R语言ggplot2可视化绘制散点图(scatter plot)使用gghighlight包突出高亮散点图中的特定数据点并自定义添加彩色文本标签(color text annotation)