更新:このソリューションは、新しいバージョン、特に新しいハンドルグラフィックシステムを使用するR2014b以降では失敗するように見えるため、主にバージョンR2014a以前に適用できます。新しいハンドルグラフィックシステムを使用する新しいバージョンの場合、解決策はここにあります。
奇妙な理由で、MATLABのデータカーソルツールは、TeX / LaTeXの解釈ではなく、文字通りに表示されるようにデータチップテキストを強制的に設定します(デフォルトのMATLAB設定でそうするように指示されている場合でも)。また、データカーソルモードのオブジェクトプロパティを介してテキストプロパティを直接設定する方法はないようです。
ただし、1つの回避策を見つけました。関数の最後に以下を追加するpolarlabel
と、テキストが正しく表示されます。
set(0,'ShowHiddenHandles','on'); % Show hidden handles
hText = findobj('Type','text','Tag','DataTipMarker'); % Find the data tip text
set(0,'ShowHiddenHandles','off'); % Hide handles again
set(hText,'Interpreter','tex'); % Change the interpreter
説明
図で作成されるすべてのグラフィックスオブジェクトには、ハンドルが必要です。オブジェクトの'HandleVisibility'
プロパティがに設定されている場合がある'off'
ため、オブジェクトのハンドルは親オブジェクトの子オブジェクトのリストに表示されないため、オブジェクトを見つけるのが難しくなります。これを回避する1つの方法は、ルートオブジェクトの'ShowHiddenHandles'
プロパティをに設定することです。これにより、特定のプロパティを持つグラフィックスオブジェクトのハンドルを検索するために使用できるようになります。(注:設定を気にせずに使用することもできます)'on'
findobj
findall
'ShowHiddenHandles'
データカーソルモードをオンにしてプロットをクリックすると、hggroupオブジェクトが作成され、その1つの子が表示されるテキストのテキストオブジェクトになります。上記のコードは、このテキストオブジェクトを検索し、シータシンボルが正しく表示されるように'Interpreter'
プロパティをに変更します。'tex'
技術的には、上記のコードは1回だけ呼び出す必要があり、毎回呼び出されるわけではありませんpolarlabel
。ただし、テキストオブジェクトは、プロットを最初にクリックしてデータチップを表示するまで(つまり、最初に呼び出されるまで)存在しないため、データカーソルモードオブジェクトpolarlabel
のコードを入力して、UpdateFcn
表示される最初のデータヒントは、正しいテキスト形式になっています。