查看: 174|回复: 7|关注: 0

[已解决] 如何将 带有曲线走势箭头的两条曲线,画在同一幅图里?

[复制链接]

新手

9 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
如这个附件所示,这是TimeCoder这位大佬写的arrowPlot函数,可以实现显示一条带箭头的曲线,但如何实现两条曲线的显示在一幅图里。按理说下面的两行代码就能实现,但是为什么就是显示不出来两条曲线?

arrowPlot(x1,y1); grid on;hold on;
arrowPlot(x2,y2); grid on;

arrowPlot.m

6.64 KB, 下载次数: 2

入门

64 麦片

财富积分


50500


1

主题

46

帖子

10

最佳答案
  • 关注者: 1
发表于 2020-1-10 18:08:52 | 显示全部楼层 |此回复为最佳答案
我试了一下,没有任何问题
  1. theta = 0 : 0.01*pi : 2*pi;
  2. x = 2*cos(theta);
  3. y = 3*sin(theta);

  4. figure;
  5. arrowPlot(x,y);
  6. grid on; hold on;
  7. arrowPlot(y,x,'color', 'r');
  8. axis([-4 4 -4 4])
复制代码
0.png

新手

9 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-1-10 20:25:15 | 显示全部楼层
gopher 发表于 2020-1-10 18:08
我试了一下,没有任何问题

谢谢你的答复,帮了我很大的忙。因为我没有设置axis,所以它自动限制在第一个图的范围内,导致第二个图没有显示出来。

新手

9 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-1-10 20:54:25 | 显示全部楼层
天空蔚_vNP78 发表于 2020-1-10 20:25
谢谢你的答复,帮了我很大的忙。因为我没有设置axis,所以它自动限制在第一个图的范围内,导致第二个图没 ...

大佬,我还有一个问题,用了legend之后,第二个图的线型和颜色不对:'(。这该怎么解决啊?

新手

9 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-1-10 21:21:53 | 显示全部楼层
天空蔚_vNP78 发表于 2020-1-10 20:54
大佬,我还有一个问题,用了legend之后,第二个图的线型和颜色不对。这该怎么解决啊? ...

就像这样 第二个图的线性和颜色不对
plot.png

入门

64 麦片

财富积分


50500


1

主题

46

帖子

10

最佳答案
  • 关注者: 1
发表于 2020-1-10 21:22:31 | 显示全部楼层
天空蔚_vNP78 发表于 2020-1-10 20:54
大佬,我还有一个问题,用了legend之后,第二个图的线型和颜色不对。这该怎么解决啊? ...

嗯,确实存在问题,解决方案:
1. 联系 arrowPlot 函数的作者,向他报告这个bug;或者自己修改函数;
2. 用以下方法投机取巧,结果如图
  1. theta = 0 : 0.01*pi : 2*pi;
  2. x = 2*cos(theta);
  3. y = 3*sin(theta);

  4. figure;
  5. arrowPlot(x,y);
  6. grid on; hold on;
  7. arrowPlot(y,x,'color', 'r');
  8. axis([-4 4 -4 4])

  9. hold on;
  10. p1 = plot(nan,nan);
  11. p2 = plot(nan,nan,'r');
  12. legend([p1,p2], {'Blue','Red'})
复制代码
0.png

入门

64 麦片

财富积分


50500


1

主题

46

帖子

10

最佳答案
  • 关注者: 1
发表于 2020-1-10 21:28:37 | 显示全部楼层
gopher 发表于 2020-1-10 21:22
嗯,确实存在问题,解决方案:
1. 联系 arrowPlot 函数的作者,向他报告这个bug;或者自己修改函数;
2. 用 ...

第一个线型竟然变成绿色了,看来这个函数 bug 还挺多的。
那只能每条线都指定线型和颜色了。
  1. theta = 0 : 0.01*pi : 2*pi;
  2. x = 2*cos(theta);
  3. y = 3*sin(theta);

  4. figure;
  5. arrowPlot(x,y,'color','b');
  6. grid on; hold on;
  7. arrowPlot(y,x,'color', 'r');
  8. axis([-4 4 -4 4])

  9. hold on;
  10. p1 = plot(nan,nan,'b');
  11. p2 = plot(nan,nan,'r');
  12. legend([p1,p2], {'Blue','Red'})
复制代码
0.png

新手

9 麦片

财富积分


050


2

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-1-10 21:29:59 | 显示全部楼层
gopher 发表于 2020-1-10 21:22
嗯,确实存在问题,解决方案:
1. 联系 arrowPlot 函数的作者,向他报告这个bug;或者自己修改函数;
2. 用 ...

太感动了,谢谢您,祝您一生平安。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表