मैं अपने भूखंड हो रही के साथ लड़ा तय धारणा के बजाय वैज्ञानिक अंकन में प्रदर्शित करने के लिए अक्ष। मेरे लिए सबसे निराशाजनक हिस्सा यह था कि "x10^4" लेबल साजिश बॉक्स के किनारे पर रहेगा, भले ही मैंने टिक्शन लेबल को मैन्युअल रूप से निश्चित नोटेशन पर पुन: असाइन किया हो। अंत में, उपरोक्त पद के लिए धन्यवाद, मैंने आंकड़े प्रस्तुतकर्ता के नीचे समस्या को ट्रैक किया। मैं 'ओपनजीएल' का उपयोग कर रहा था। जब मैं टिक लेबल को मैन्युअल रूप से रीसेट करता हूं तो जब मैं 'zbuffer' में बदल जाता हूं तो "x10^4" लेबल ठीक से गायब हो जाएगा। यहां एक उदाहरण कोड है जो y-axis लेबल में '###, ###। 0' प्रारूप को सेब करता है, और जब भी आप ज़ूम/पैन इत्यादि करते हैं तो वाई-लेबल्स को गतिशील रूप से अद्यतन करता है, धन्यवाद, Matlab फ़ाइल एक्सचेंज। अन्य दो कार्यों को खोजने के लिए जगह नीचे दी गई टिप्पणियों के रूप में शामिल है।
function []=TickFixExample()
figure %this one works
myRenderer='zbuffer';
set(gcf,'Renderer', myRenderer);
axesh = axes();
set(gca,'YLim',[20000 20100]);
title(myRenderer)
ticklabelformat(gca,'y','###,###.0');
figure %this one doesn’t work
myRenderer='OpenGL';
set(gcf,'Renderer', myRenderer);
axesh = axes();
set(gca,'YLim',[20000 20100]);
title(myRenderer)
ticklabelformat(gca,'y','###,###.0');
समारोह ticklabelformat (hAxes, axName, प्रारूप) वाई ऑल्टमैन द्वारा, पर पाया जा सकता: http://www.mathworks.com/matlabcentral/fileexchange/36254-ticklabelformat-set-a-dynamic-format-of-axes-tick-labels या 'ticklabelformat matlab' googling द्वारा मैं थोड़ा लाइन 105 को बदलने के रूप में निम्नानुसार द्वारा इसे संशोधित:
tickLabels = arrayfun(@(x)(FormatNumberScalarInputStrOutput`(x,format)),tickValues,'UniformOutput',false);`
ऑल्टमैन के संस्करण के एवज में
:
tickLabels = arrayfun(@(x)(sprintf(format,x)),tickValues,'UniformOutput',false);
कि बदलाव के लिए प्रदान करता है हजारों अल्पविराम विभाजक कार्यक्षमता फ़ंक्शन वाई = नंबरफॉर्मेटर (संख्या, स्वरूप पैटर्न) एस लिएनहार्ड द्वारा मैटलैब फ़ाइल एक्सचेंज पर भी।Lienhard कोड का मेरा संशोधित संस्करण नीचे पूर्ण में दिया जाता है:
ax = gca;
ax.YAxis.Exponent = 0;
यहाँ एक उदाहरण है:
function y = FormatNumberScalarInputStrOutput(Number ,FormatPattern)
% adapted 12-2012 by D. Bourgoyne from NUMBERFORMATTER by S. Lienhard
%
% The pound sign (#) denotes a digit, the comma is a placeholder for the
% grouping separator, and the period is a placeholder for the decimal
% separator.
% The pattern specifies leading and trailing zeros, because the 0
% character is used instead of the pound sign (#).
%
% Examples:
% NumberFormatter(rand(5),'0.000')
% NumberFormatter(rand(5)*100,'###,###.000')
import java.text.*
v = DecimalFormat(FormatPattern);
y = char(v.format(Number));
अरे, तुम थे केवल सेकंड तेज़ ... ;-)। वैसे भी, आपको "ytick" और "yxticklabel" को "ytick" और "yticklabel" द्वारा प्रतिस्थापित करना चाहिए। और दूसरी पंक्ति के अंत में एक्स को xt पढ़ना चाहिए। –
:) - बस मुझे फोन कॉल मिलने के बारे में था! – robince
दूसरी पंक्ति के अंत में एक्स अभी भी गलत है। मुझे पढ़ना चाहिए, मुझे लगता है। –