2010-05-11 4 views
8

मैं PHP में एक लाइन ग्राफ का निर्माण कर रहा हूं। मैं लाइन ग्राफ़ का अधिकतम मूल्य आइटम के अपने संग्रह के अधिकतम मूल्य पर सेट कर रहा था, लेकिन यह ग्राफ को कम पठनीय बनाने में समाप्त हुआ, आप ग्राफ पर उच्चतम रेखा को देखने में असमर्थ हैं क्योंकि यह इसके शीर्ष के साथ छेड़छाड़ करता है। तो क्या मैं जरूरत मूल रूप से संख्याओं के एक समूह लेने के लिए और गणना क्या लाइन ग्राफ पर की तार्किक अधिकतम मूल्य होना चाहिए करने के लिए एक फार्मूला .. तो कुछ उदाहरण हैPHP ने मनमानी संख्याओं की श्रृंखला दी है, मैं लाइन ग्राफ़ पर लॉजिकल अधिकतम मान कैसे चुन सकता हूं?

3500 
250 
10049 
45394 
434 
312 
     Max value on line graph should probably be 50000 

493 
412 
194 
783 
457 
344 
    max value on line graph would ideally be 1000 

545 
649 
6854 
5485 
11545 
     In this case, 12000 makes sense as max value 

तो निकटतम करने के लिए ऊपर की ओर गोलाई के रूप में सरल कुछ हज़ारवां काम कर सकता है लेकिन मुझे इसकी संख्या बढ़ने की आवश्यकता होगी क्योंकि संख्याएं बड़ी हो गईं। (पहले उदाहरण में 46,000 के बजाय 50000) अधिकतम संख्या ये संख्या लगभग दस लाख होगी।

किसी भी सिफारिश की बहुत सराहना की जाएगी, धन्यवाद।

private function FigureMaxValue($array) 
    { 
     $highestNumber = max($array); 
     if ($highestNumber == 0) return 0; 
     $highestNumber = $highestNumber * 1.1; 
     (float)$highestNumber = round((float)$highestNumber, 0); 
     $maxValue = ceil((integer)$highestNumber/100) * 100; 
     return $maxValue; 
    } 
+0

यदि आपके पहले उदाहरण में 45394 के बजाय 50001 था तो अधिकतम मूल्य क्या होना चाहिए? – IVlad

+0

कौन सा PHP संस्करण? – erisco

+0

@IVlad: मैं 53,000ish कहूंगा? (मुख्य बात एक आसानी से विभाजित पूर्ण संख्या है जैसे 53000 नहीं 53500 या 53585) @ सिस्को: PHP 5 – stormist

उत्तर

1

मैं उच्चतम मूल्य से ऊपर एक परिमाण, $highestValue * 1.05 या कुछ और की तरह बस करना होगा:

यहाँ है कि मैं क्या पर बसे, आप सभी अपनी टिप्पणी के लिए धन्यवाद है। आपको अभी भी आउटलेटर्स आईई -

4 
5 
12 
2 
1 
4 
4266 

इस मामले में आप निम्न संख्याओं पर संकल्प खो देंगे। यदि आप किसी भी आउटलाइडर को त्यागना चाहते हैं तो आप प्रत्येक तत्व पर मानक विचलन का परीक्षण कर सकते हैं।

2
1. $numbers = array(3500, 250, 10049, 45394, 434, 312) 
2. $highestNumber = max($numbers) 
3. $n = 10^(strlen($highestNumber) - 1) 
4. $highestNumber = $highestNumber/$n 
5. $newMax = ceil($n) 
6. $newMax = $newMax * $n 
+0

मुझे "दौर के लिए गलत पैरामीटर" मिलता है – stormist

+0

PHP_ROUND_HALF_UP पैरामीटर PHP 5.3.0 में पेश किया गया था। आप किस PHP संस्करण का उपयोग करते हैं? –

+0

इसके बजाय छत का उपयोग करें(), मैंने ऊपर अपना जवाब संपादित किया; –

संबंधित मुद्दे