データ カーソル モードに入り、バーを選択します。
データ ポイントを右クリックし、メニューから [テキスト更新関数の編集...] を選択します。

関数を次のように変更します。
function output_txt = myfunction(obj,event_obj)
pos = get(event_obj, 'Position');
lab = get(gca, 'XTickLabel');
if isa(lab,'double')
lab = arrayfun(@(x){num2str(x)},lab);
end
output_txt = {['X: ', lab{pos(1)}], ['Y: ', num2str(pos(2),4)]};
end
まず、これは xticklabels のセットを取得し、それらを に格納しますlab
。
次に、文字列のセル配列ではなく実際に double であるかどうかをチェックし、必要に応じて変換します。
最後に、正しいラベルのテキストが表示されます。
コールバックを次のように保存するmyfunction.m
と、ゴールデンになるはずです。

プログラムで実行する場合は、関連する Figure のデータ カーソル マネージャーを取得する必要があります。このようなものが動作するはずです:
>> bar([1,2,3])
>> dcm = datacursormode(gcf);
>> set(dcm, 'UpdateFcn', @(a,b) {'Hello', 'World'})
の 3 番目の引数は、テキストの設定に使用する関数のハンドルです (たとえば、前の関数を として保存した場合にset
使用できます)。それはあなたに次のようなものを与えます:@myfunction
myfunction.m
