2011-04-15 24 views
5

जावा और जावास्क्रिप्ट दोनों में समान डेटा के लिए समान चार्ट उत्पन्न करने के लिए कोई लाइब्रेरी है? ,हाइब्रिड सर्वर-साइड-जावा और क्लाइंट-साइड-जावास्क्रिप्ट चार्टिंग लाइब्रेरी?

  • प्रदर्शन एक ब्राउज़र में कुछ आकर्षक गतिशील चार्ट , गतिशील टूलटिप्स के साथ बेहतर जूमिंग और इतने पर (मैं जावास्क्रिप्ट यहाँ सोच रहा हूँ)
  • और एक ही उत्पन्न:

    मेरे काम दोनों है (या समान समान) जावा में सर्वर पक्ष पर चार्ट, स्वचालित रूप से उन्हें ईमेल (इस परिदृश्य में बिल्कुल कोई ब्राउज़र नहीं) भेजने के लिए।

मैं आईफोन इंटरऑपरेबिलिटी के लिए फ्लैश से बचना चाहता हूं।

ईस्टवुड/जेएफरी चार्ट जैसे कुछ स्थैतिक सर्वर-साइड चार्ट हैं, लेकिन मैं ब्राउज़र में इसे और अधिक जीवंत बनाना चाहता हूं।

हाँ मैं अजाक्स के माध्यम से स्थैतिक छवियों को फिर से लोड कर सकता हूं। क्या अन्य विकल्प हैं?

+0

क्या [Flot] के बारे में (http://code.google.com/p/flot/)? दुर्भाग्य से आपको ब्राउज़र में इसे निर्यात करने के लिए एक कैनवास में प्रस्तुत करना होगा। आप इसे JFreeChart/Eastwood के साथ जोड़ सकते हैं और उसी डेटा से दो ग्राफ हैं, हालांकि वे अलग दिखेंगे। – justkt

+0

यह भी देखें https://stackoverflow.com/questions/11331076/how-to-use-a-javascript-chart-library-like-d3-js-or-rapha%C3%ABl-in-server-side-java – Pino

उत्तर

9

यह प्रश्न एक वर्ष से अधिक पुराना कैसे है लेकिन कोई जवाब नहीं मिला ?! मैं एक बल्कि संदिग्ध और कुछ हद तक कट्टर दृष्टिकोण का सुझाव देता हूं।


जावास्क्रिप्ट का उपयोग करें, यह कमाल है! d3.js+jsdom+Rhino+Batik

विशेष रूप से::

यहाँ अपनी सफलता सूत्र दिया गया है

  1. d3.js जैसे कुछ चालाक JavaScript लाइब्रेरी का उपयोग कर अपने रेखांकन उत्पन्न करें।

  2. डी 3 सर्वर-साइड चलाने के लिए jsdom का उपयोग करें। जेएसडम शुद्ध जेएस लाइब्रेरी है और डी 3 इसके शीर्ष पर काम करने के लिए जाना जाता है।

  3. Rhino के अंदर jsdom और d3 चलाएं - एक जावास्क्रिप्ट इंजन 1.6 (yay, JSR-223!) से आपके प्रिय JVM में पकाया गया है। हालांकि, मेरा सुझाव है कि आप इसे नवीनतम रिलीज (It's on Maven Central, neat!) में अपडेट कर रहे हैं। मुझे लगता है कि Node.JS बेहतर काम कर सकता है लेकिन मुझे लगता है कि आप जावा के साथ फंस गए हैं।

    यह भी ध्यान रखें एक पुराने, अधिक परिपक्व और राइनो विशेष सर्वर साइड डोम कार्यान्वयन यह है कि - EnvJs(requires Rhino 1.7R2, not R3)। यदि आप jsdom आपके लिए काम नहीं करते हैं तो आप इसे आजमा सकते हैं।

  4. डी 3 द्वारा उत्पन्न एक एसवीजी रास्टरराइज करने के लिए Batik का उपयोग करें। Batik even supports scripting inside SVG via Rhino. इसका मतलब है कि यदि आप चाहते हैं तो आप इंटरेक्टिव चार्ट सर्वर-साइड उत्पन्न कर सकते हैं। मैंने इसे अभ्यास में भी इस्तेमाल किया और इसके साथ बहुत अच्छा अनुभव था।

संपूर्ण दृष्टिकोण is known to work server-side with Node.JS as a JS engine and ImageMagick as a rasterizer लेकिन मुझे कोई कारण नहीं दिखता कि यह आपके लिए भी काम नहीं करेगा।


बीटीडब्ल्यू, यदि आप इसे सब चलाना चाहते हैं तो मुझे बताएं।

+0

ग्रेट उत्तर, धन्यवाद! एक दयालुता मैं अब Grails परियोजना पर नहीं हूँ, यह मजेदार हो सकता है। '" यदि आप इसे सभी चलाना चाहते हैं तो मुझे बताएं। "': डी –

+0

आपको बताते हुए: http://stackoverflow.com/questions/24557308/launch-jsdom-from-rhino-on-java – ses

+0

वाह! यह "कुछ हद तक कट्टर" नहीं है: यह 100% कट्टर है! – Pino

2

वास्तव में देर से उत्तर क्षमा करें, लेकिन Highcharts का उपयोग करने के बारे में कैसे? मैं उस लिंक की तलाश में हूं जो आपको अधिक जानकारी प्रदान करता है क्योंकि मैं इसे टाइप कर रहा हूं, लेकिन हाइचार्ट्स सर्वर-साइड 'निर्यात' सुविधा प्रदान करता है। यह मूल रूप से क्या करता है यह आपको एक ब्राउज़र की आवश्यकता के बिना किसी छवि की एक प्रति डाउनलोड करने की अनुमति देता है।

मैंने इस सुविधा को कार्यान्वित किया ताकि मैं अनुरोध पैरामीटर ले सकूं, डेटा स्टोर पूछ सकूं, वांछित ग्राफ में हाईचर का उपयोग करके उन नंबरों को प्लॉट कर सकूं और उन परिणामों को एक ईमेल में एम्बेड कर सकूं (और बेशक, ईमेल को ईमेल भेजें प्राप्तकर्ताओं)।

अधिक यहाँ जानकारी: http://www.highcharts.com/component/content/article/2-articles/news/52-serverside-generated-charts

और

यहाँ

: https://github.com/one2team/highcharts-serverside-export

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