凡例の複数行化エラー:cell 型の値をインデックスとして使用できません。
9 ビュー (過去 30 日間)
古いコメントを表示
scatter関数を使いfigureを作成したところ,凡例が多かったので複数列化を試みました.
legend({'Cutting Depth = 5 [mm]','...','Cutting Depth = 50 [mm]'},'FontSize',10,'Interpreter','latex','Location','northeast','NumColumns',2)
すると,「cell型の値をインデックスとして使用できません」というエラーが出てきてしまい,figureには凡例が表示されず困っています.
ここのとおりに書いたつもりなのですが,上手くいかない原因が分かれば教えて下さい.
0 件のコメント
回答 (1 件)
Kojiro Saito
2021 年 12 月 20 日
コードのどこかにlegendという変数を定義していたり、legend.mというカスタムの関数を書いたりしていませんでしょうか?
which legend -all
を実行してみて、<MATLABインストールフォルダ>\toolbox\matlab\scribe\legend.m だけがリターンされれば問題ないのですが、「legend is a variable.」と表示されたり、別のフォルダにあるlegend.mが表示されたりすると、凡例を付ける関数legendが正しく認識されません。
もしlegendという変数を定義していたら
clear legend
で変数legendをクリアして、違う変数名で定義したり、
カスタムのlegend.mがある場合は別名(例:mylegend.m)のファイル名にしたりすることで解決できると思います。
2 件のコメント
Kojiro Saito
2021 年 12 月 21 日
legendは問題なさそうですね。私の環境では再現できないので、どのようなfigureをプロットしてこの現象が起きているのか、サンプルコードを提供いただけますか?
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!