Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我想用两个颜色的虚线绘制一条垂直线(我希望使用任何方向,但我现在都希望垂直即可),例如红色-蓝色-红色-蓝色-...
我知道我可以这样做: plot([1,1],[0,1],'r'), hold on, plot([1,1],[0,1],'--b') 但是,由于我需要能够移动这条线,所以它只能有一个手柄。我该怎么办? 编辑谢谢您的回答。我想我确实应该提供更多信息。 我有一些数据分为不同的部分。我希望能够手动调整类之间的边界。为此,我在分类边界处绘制垂直线,并使用可拖动的方式允许移动这些线。 对于红色和蓝色类之间的边界,我想有一条红色/蓝色线。 plot(ones(10,1),linspace(0,1,10),'-bs','MarkerFaceColor','r','MarkerEdgeColor','none','linewidth',6) 是我目前实际使用的。但是,它并不是那么漂亮(如果我想要相等的间距,这将成为一种真正的痛苦,并且我想给两种颜色相同的权重),并且我想有可能使用三种颜色(而不是使用标记边缘和脸色不同,因为它使我的眼睛流血)。 不幸的是,draggable不允许我使用多个句柄,并且用hggroup对行进行分组似乎无法创建可拖动的对象。 cline看起来是一种很有前途的方法,但是彩虹色不适用于我的应用程序。 回答: 您可以使用已有的代码,只需将每行中的句柄连接到句柄向量中即可。当您想同时更改两行的属性时, SET函数可以接受手柄向量作为参数。从SET的文档中: set(H,'PropertyName',PropertyValue,...)将命名属性设置为H标识的对象上的指定值。 H可以是句柄的向量,在这种情况下, set设置所有对象的属性值。这是一个例子: h1 = plot([1 1],[0 1],'r'); %# Plot line 1 hold on; h2 = plot([1 1],[0 1],'--b'); %# Plot line 2 hVector = [h1 h2]; %# Vector of handles set(hVector,'XData',[2 3]); %# Shifts the x data points for both lines 更新:既然您提到您正在使用MathWorks File Exchange中的 可拖动对象 ,这是另一种解决方案。从可拖动的描述: 可以将移动对象时调用的功能作为可选参数提供,以便移动触发进一步的动作。然后,您可以尝试以下解决方案:
更多&回答... |
![]() |
![]() |