谷浪 2024-08-16 10:14 采纳率: 62.5%
浏览 12
已结题

matlab图例标签显示错位+显示不全

img


这是画三维箭头的代码

quiver3(start_point(1), start_point(2), start_point(3), end_point1(1), end_point1(2), end_point1(3), 'Color', 'b', 'LineWidth', 5);
quiver3(start_point(1), start_point(2), start_point(3), end_point2(1), end_point2(2), end_point2(3), 'Color', 'r', 'LineWidth', 3);
quiver3(start_point(1), start_point(2), start_point(3), end_point3(1), end_point3(2), end_point3(3), 'Color', 'm', 'LineWidth', 1);

这是设置图例的代码

legend('S1','S2','S3','Location','northwest');

不应该是粗的'b'蓝色是S1,'r'红色是S2,细的‘m’紫红色是S3吗,这个图例标的咋都乱套了
还有为啥不显示紫红色的箭头标签出来呢?

  • 写回答

8条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-08-16 11:06
    关注

    🕖上午好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:死生契阔,与子成说。执子之手,与子偕老。

    您遇到的问题是图例顺序与绘制箭头的顺序不一致导致的。在 MATLAB 中,legend 函数默认按照绘图的先后顺序关联图例标签。

    以下是修正后的代码及解释:

    % 示例数据
    start_point = [0, 0, 0];
    end_point1 = [1, 1, 1];
    end_point2 = [-1, 1, -1];
    end_point3 = [1, -1, -1];
    
    % 绘制三维箭头
    figure; hold on;
    % 注意此处调整了绘制顺序,使得与图例顺序一致
    h1 = quiver3(start_point(1), start_point(2), start_point(3), end_point1(1), end_point1(2), end_point1(3), 'Color', 'b', 'LineWidth', 5);
    h2 = quiver3(start_point(1), start_point(2), start_point(3), end_point2(1), end_point2(2), end_point2(3), 'Color', 'r', 'LineWidth', 3);
    h3 = quiver3(start_point(1), start_point(2), start_point(3), end_point3(1), end_point3(2), end_point3(3), 'Color', 'm', 'LineWidth', 1);
    
    % 设置图例
    legend([h1, h2, h3], 'S1', 'S2', 'S3', 'Location', 'northwest'); 
    
    % 其他绘图设置
    xlabel('X');
    ylabel('Y');
    zlabel('Z');
    grid on;
    view(3);
    

    解释:

    1. 调整绘制顺序: 将绘制紫色箭头的代码 quiver3(..., 'Color', 'm', ...) 移到绘制红色箭头的代码 quiver3(..., 'Color', 'r', ...) 之前,确保绘制顺序与图例标签顺序一致。
    2. 将图形对象传递给 legend 函数: 将每个 quiver3 函数的返回值(图形句柄)保存到变量 h1, h2, h3 中,并将它们作为第一个参数传递给 legend 函数。这将确保图例标签与对应的图形对象正确关联。

    通过以上修改,图例标签将与对应的箭头颜色和粗细正确匹配,并且紫色箭头的标签也将正常显示。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月16日
  • 赞助了问题酬金15元 8月16日
  • 请采纳用户回复 8月16日
  • 创建了问题 8月16日

悬赏问题

  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块