2012-01-12 3 views
7

मैं इस का उपयोग एक बार चार्ट बनाने के लिए:गणित में डेटा मूल्य 0 के लिए लेबल छिपाने से बरचार्ट को कैसे रोकें?

BarChart[ 
[email protected], 
BarOrigin -> Left, 
ChartLabels -> 
    Placed[{[email protected], [email protected]}, {Before, After}], 
ChartElementFunction -> "FadingRectangle" 
] 

data = {7, 10, 0, 6, 0, 3, 5} के साथ इस देता है

Mathematica graphics

समस्या है डेटा मूल्यों के कुछ 0 कर रहे हैं और BarChart भी लेबल जोड़ नहीं होगा कि उनके लिए। इसके बजाय यह एक खुली जगह छोड़ देता है। मूल्य 0 हैं, भले ही मैं लेबल को अभी भी जोड़ने के लिए कैसे प्राप्त कर सकता हूं?

यह मेथेमेटिका 8.

+0

संभवतः संबंधित मेथेमेटिका 7 में दिए गए काम करता है के रूप में : //stackoverflow.com/questions/6557883/not-cropping-barchart-when-using-frame-instead-of-axes) – Szabolcs

+1

यह एक मोटा कामकाज है, लेकिन यदि कुछ भी बेहतर नहीं होता है, तो आप 'BarChart [Rev erse [डेटा /। एक्स_ /; x == 0 -> 10^-5], ... '(यानी प्लॉटिंग से पहले छोटी संख्याओं के साथ शून्य को प्रतिस्थापित करें)। मैंने पैटर्न 'x_ /; x == 0' दोनों 0 और 0.0 से मेल खाने के लिए ... मुझे लगता है कि 0 | 0.0 अच्छा भी होगा। – Szabolcs

उत्तर

6

के बारे में क्या
data = {7, 10, 0, 6, 0, 3, 5} 

labels = ("label " ~~ ToString[#]) & /@ data 

BarChart[[email protected], BarOrigin -> Left, 
ChartLabels -> Placed[{[email protected], [email protected]}, {Axis, After}], 
ChartElementFunction -> "FadingRectangle"] 

ऐसा लगता है कि "इससे पहले कि" "एक्सिस" काम नहीं करता है और करता है? ([जब अक्ष के बजाय फ़्रेम का उपयोग करते BarChart फसल नहीं] http:

chart

+0

यह सबसे साफ समाधान की तरह दिखता है, भले ही आप अभी भी दूसरे लेबल को खो दें। –

3

सरल दृष्टिकोण data /. {(0|0.0) -> 0.00001} की तरह एक हैक उपयोग करने के लिए है के साथ है।

मुझे लगता है कि इसे एक हैक की आवश्यकता के बिना काम करना चाहिए, इसलिए आपको [email protected] के साथ एक रिपोर्ट भी दर्ज करनी चाहिए।

+0

मुझे एहसास हुआ कि मैंने एक गलती की जब मैंने नमूना डेटासेट संपादित किया और सवाल में साजिश रची: डेटासेट वास्तविक संख्या हो सकता है, इसलिए '0 | 0.0 -> 0.00001' या कुछ ऐसा ही बेहतर होगा। – Szabolcs

+0

@Szabolcs अच्छा बिंदु। मैंने आपका दृष्टिकोण जोड़ा (संक्षेप में 'PossibleZeroQ' पर विचार करने के बाद ...) –

2

आपका कोड विंडोज पर 7.

data = {7, 10, 0, 6, 0, 3, 5}; 

labels = Row[{"label",#}]& /@ data; 

BarChart[ 
    [email protected], 
    BarOrigin -> Left, 
    ChartLabels -> 
    Placed[{[email protected], [email protected]}, {Before, After}], 
    ChartElementFunction -> "FadingRectangle" 
] 

Mathematica graphics

+1

मुझे लगता है कि मुझे निर्दिष्ट होना चाहिए था कि मैं गणित 8 का उपयोग कर रहा हूं। –

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