ไลบรารีแผนภูมิ JavaScript


223

ใครจะแนะนำห้องสมุดแผนภูมิ JavaScript เฉพาะ - เฉพาะที่ไม่ใช้แฟลชเลย?

คำตอบ:


160

มีจำนวนเพิ่มมากขึ้นของโอเพ่นซอร์สและโซลูชั่นเชิงพาณิชย์สำหรับการสร้างแผนภูมิจาวาสคริปต์ที่ไม่ต้องใช้แฟลช ในการตอบสนองนี้ฉันจะนำเสนอตัวเลือกโอเพนซอร์สเท่านั้น

โซลูชัน JavaScript มี 2 คลาสหลักสำหรับกราฟิกที่ไม่ต้องใช้ Flash:

  • Canvas-based เรนเดอร์ใน IE โดยใช้ ExplorerCanvas ซึ่งจะขึ้นอยู่กับ VML
  • SVG บนเบราว์เซอร์ที่ได้มาตรฐานแสดงผลเป็น VML ใน IE

มีข้อดีข้อเสียของวิธีการทั้งสอง แต่สำหรับห้องสมุดการทำแผนที่ฉันจะแนะนำในภายหลังเพราะมันรวมกับ DOM ช่วยให้การจัดการองค์ประกอบแผนภูมิกับ DOM และที่สำคัญที่สุดคือการตั้งค่าเหตุการณ์ DOM ในทางตรงกันข้ามไลบรารีการสร้างแผนภูมิผ้าใบจะต้องบูรณาการล้อ DOM เพื่อจัดการเหตุการณ์ ดังนั้นหากคุณไม่ต้องการสร้างกราฟแบบคงที่โดยไม่มีการจัดการเหตุการณ์โซลูชัน SVG / VML น่าจะดีกว่า

สำหรับโซลูชัน SVG / VML มีตัวเลือกมากมายรวมถึง:

Raphaelเป็นไลบรารีกราฟิกแบบโอเพ่นซอร์สที่ได้รับการดูแลรักษาเป็นอย่างดีและเป็นผู้ใหญ่พร้อมการสนับสนุนข้ามเบราว์เซอร์ที่ดีมากเช่น IE 6 ถึง 8, Firefox, Opera, Safari, Chrome และ Konqueror Raphael ไม่ได้ขึ้นอยู่กับเฟรมเวิร์ก JavaScript ใด ๆ ดังนั้นจึงสามารถใช้กับ Prototype, jQuery, Dojo, Mootools ฯลฯ ...

มีจำนวนแผนภูมิการสร้างแผนภูมิตาม Raphael รวมถึง (แต่ไม่ จำกัด เฉพาะ):

  • gRaphaelส่วนขยายของไลบรารีกราฟิกของ Raphael
  • Icoด้วย API ที่ใช้งานง่ายโดยอิงจากการเรียกใช้ฟังก์ชันเดียวเพื่อสร้างแผนภูมิที่ซับซ้อน

การเปิดเผยข้อมูล: ผมพัฒนาของหนึ่งในงา Ico บน GitHub


5
Grafico และ Ico เป็นสองส้อมที่เข้ากันไม่ได้ของ Ico เริ่มต้นโดย Alex Young ดังนั้นจึงไม่ถูกต้องที่จะระบุว่า Ico กลายเป็น Grafico Grafico เป็นเพียงหนึ่งในส้อม
Jean Vincent

ควรสังเกตว่าราฟาเอลดูเหมือนจะไม่ได้รับการบำรุงรักษาอีกต่อไป ความมุ่งมั่นล่าสุดคือกรกฎาคม 2010 หรือมากกว่านั้น
Alastair Pitts

1
เพียงดาวน์โหลดชาร์ตราฟาเอลชื่นชอบมาก แต่ไม่มีเอกสารเพียงเพื่อเตือน
วงโคจร

@Alastair: Raphael ได้รับการสนับสนุนและพัฒนาโดย Sencha ... หรือพวกเขาบอกว่า :)
Roy Tinker

1
ไม่รองรับ SVG ใน Pre-Honeycomb Android หากความสามารถในการดูชาร์ตในอุปกรณ์ Android ในปัจจุบันนั้นเป็นข้อกำหนดคุณจะต้องเลือกโซลูชันที่ใช้ Canvas บทความเกี่ยวกับชาร์ต Sencha Touch นี้จะมีรายละเอียดเพิ่มเติมเกี่ยวกับการสร้างแผนภูมิมือถือโดยทั่วไปและทำไม Sencha Touch ถึงเส้นทาง Canvas
Pallavi Anderson

70

หากคุณกำลังใช้ jQuery ฉันได้พบFlotจะดีมาก - ลองตัวอย่างเพื่อดูว่าเขาเหมาะกับความต้องการของคุณ แต่ฉันได้พบว่าพวกเขาจะทำมากที่สุดของสิ่งที่ฉันต้องการสำหรับโครงการปัจจุบันของฉัน

นอกจากนี้ExtJS 4.0ยังได้แนะนำชุดของแผนภูมิที่ยอดเยี่ยม - มีประสิทธิภาพมากและถูกออกแบบมาเพื่อทำงานกับข้อมูลสด


2
นี่เป็นไลบรารีเดียวกับ Geoff Dalgas ที่ใช้สร้างกราฟชื่อเสียงที่นี่ใน StackOverflow มันเป็นชุดที่ดีจริงๆ
Charles Roper

ข้อร้องเรียนที่แท้จริงของฉันเกี่ยวกับ flot คือเมื่อเรนเดอร์ใน IE มันดูแย่ในระดับการซูมใด ๆ แล้ว 100% (เช่นเส้น / บล็อกทั้งหมดไม่ได้ปรับขนาดด้วยกัน - นี่เป็นปัญหาสำหรับพวกเราที่มีการแสดงความละเอียดสูง)
Bittercoder

2
ดูเหมือนว่าแผนภูมิที่ดูดีกว่าที่อื่น ๆ ที่ฉันได้ดู นี่คือลิงค์ไปยังไลบรารีชาร์ต JavaScript 20 แห่ง: javascript.open
B Seven

ฉันชอบ flot ด้วยเช่นกันเคยใช้หลายครั้งบนเว็บแอปต่างๆ
fedmich

1
ฉันชอบ Flot ทั่วไป แต่มันต้องการข้อมูลทั้งหมดจะเป็นตัวเลขดังนั้นถ้าคุณต้องการบางสิ่งบางอย่างเช่นการขายล็อตต่อลูกค้า (ตามชื่อ) หรือต่อผลิตภัณฑ์มันจะไม่ทำงาน
รี K

60

ตรวจสอบhttp://www.highcharts.com !

Highcharts เป็นห้องสมุดสร้างแผนภูมิที่เขียนด้วยจาวาสคริปต์บริสุทธิ์ซึ่งเป็นวิธีการง่ายๆในการเพิ่มแผนภูมิเชิงโต้ตอบลงในเว็บไซต์หรือเว็บแอปพลิเคชันของคุณ ปัจจุบัน Highcharts รองรับชนิดของเส้น, เส้นโค้ง, พื้นที่, พื้นที่, คอลัมน์, บาร์, พายและแผนภูมิกระจาย


12
น่าจะชี้ให้เห็นว่าห้องสมุดนี้ให้บริการฟรีสำหรับการใช้ที่ไม่ใช่เชิงพาณิชย์ แต่มีค่าใช้จ่ายสำหรับไซต์เดียวและหลายไซต์ ดูเหมือนว่าราคาจะสมเหตุสมผล
Nick Spacek

ตอนแรกมันเป็นปลั๊กที่ไร้ยางอาย แต่พวกมันดูยอดเยี่ยมจริงๆ !! มันไม่ใช่การใช้งานเชิงพาณิชย์ fot ฟรี แต่ฉันไม่มีการอ้างอิงว่าราคาสมเหตุสมผลหรือไม่ แต่พวกเขาดูโอเคอย่างรวดเร็ว!
Trufa

นี่เป็นไลบรารีการสร้างแผนภูมิเดียวกับที่ใช้ใน CloudFlare.com และมันก็ดูดีมาก ฉันกำลังจะใช้ห้องสมุดการสร้างแผนภูมิ DevExpress ซึ่งเป็น ASP.NET และวาทกรรมและรูปภาพในเซิร์ฟเวอร์เมื่อฉันสะดุดกับไลบรารี highcharts ฉันมั่นใจในทันทีว่านี่เป็นวิธีที่จะไป เมื่อฉันค้นพบว่า CloudFlare ซึ่งมีหนึ่งในแดชบอร์ด / การวิเคราะห์ที่สะดุดตาที่สุดที่ฉันเคยเห็นมาก็ใช้มันเช่นกันที่ฉันขาย! ขณะนี้ฉันกำลังทดลองกับมันและมันได้ผลในความพยายามครั้งแรกของฉันในการฝังแผนภูมิในหน้าเว็บของฉัน ... ดังนั้นจึงใช้งานได้ง่ายเช่นกัน!
Loudenvier

1
โหวตหนึ่งคะแนนสำหรับ Highcharts ฉันกำลังใช้งานอยู่และมันก็ยอดเยี่ยม รองรับ jQuery, Mootools และ Prototype และง่ายต่อการติดตั้งและใช้งาน
gnclmorais

1
Stackoverflow เองใช้ highcharts stackoverflow.com/users/22656/jon-skeet?tab=reputation
สกอตต์

36

อาจไม่ใช่สิ่งที่คุณกำลังมองหา แต่
Chart Chart ของ Googleนั้นค่อนข้างเท่ห์และใช้งานง่าย


16
มันไม่ใช่จาวาสคริปต์
user102008

5
เพิ่งทราบว่า Google Chart ต้องการการเชื่อมต่ออินเทอร์เน็ตและมีข้อ จำกัด เกี่ยวกับจำนวนคำขอของลูกค้าที่ได้รับอนุญาต
fedmich

@ user102008: ตอนนี้ :) (คุณยังคงสามารถเข้าถึงAPI ภาพเก่าหากคุณต้องการ)
Spycho

Google Chart API ไม่สามารถใช้ออฟไลน์ไม่ดีสำหรับการพัฒนาอุปกรณ์พกพา
oldwizard

ฉันต้องทำ Candlestick แบบแนวนอนทุกคนรู้ว่าเป็นไปได้ด้วย google แผนภูมิ api?
Tom Stickel

15

มีอีกหนึ่งไลบรารีจาวาสคริปต์ที่ใช้ SVG มันถูกเรียกว่าProtovisและมาจาก Stanford Visualization Group

นอกจากนี้ยังช่วยในการสร้างกราฟิกเชิงโต้ตอบและการสร้างภาพข้อมูลที่ดี

http://vis.stanford.edu/protovis/ex/

แม้ว่ามันจะเป็นเพียงสำหรับเว็บเบราว์เซอร์ที่ทันสมัย

UPDATE:ทีม protovis ได้ย้ายไปที่ห้องสมุดอื่นที่เรียกว่า d3.js (Data Driven Documents) ตามที่พวกเขากล่าวว่า:

"ทีม Protovis กำลังพัฒนาไลบรารีการสร้างภาพข้อมูลใหม่ D3.js พร้อมการสนับสนุนการเคลื่อนไหวและการโต้ตอบที่ดีขึ้น D3 สร้างขึ้นบนแนวคิดหลายอย่างใน Protovis"

ห้องสมุดใหม่สามารถพบได้ใน:

http://mbostock.github.com/d3/

อัปเดต 2:

"Rickshaw" เป็นชุดเครื่องมือ JavaScript สำหรับสร้างกราฟอนุกรมเวลาแบบโต้ตอบ จาก d3.js ที่ทำให้การทำงานกับ d3.js ง่ายขึ้นแม้ว่าจะมีประสิทธิภาพน้อยกว่าเล็กน้อย

http://code.shutterstock.com/rickshaw/


จากรูปลักษณ์ที่รวดเร็วฉันไม่คิดว่า D3 "แทนที่" Protovis ฉันจะบอกว่าทีม "ย้ายไป" เพราะพวกเขาเห็นว่ามันน่าสนใจและทันสมัย
David J.

14

เมื่อเร็ว ๆ นี้ฉันกำลังมองหาไลบรารีแผนภูมิ javascript และฉันประเมินกลุ่มทั้งหมดก่อนที่จะตกลงกับjqplotซึ่งตรงกับความต้องการของฉันเป็นอย่างดี ตามคำตอบของ Jean Vincent ที่กล่าวถึงคุณกำลังเลือกระหว่าง Canvas และ Svg based solution

ในใจของฉันข้อดีและข้อเสียที่สำคัญมีดังนี้ โซลูชันที่ใช้ SVG เช่นRaphael (และ offshoots) นั้นยอดเยี่ยมหากคุณต้องการสร้างแผนภูมิแบบไดนามิก / อินเทอร์แอคทีฟสูง หรือถ้าคุณต้องการสร้างแผนภูมินั้นเกินกว่ามาตรฐาน (เช่นคุณต้องการสร้างแผนภูมิไฮบริดบางประเภทหรือคุณได้สร้างภาพข้อมูลใหม่ที่ไม่มีใครนึกถึงมาก่อน) ข้อเสียคือช่วงการเรียนรู้และจำนวนของรหัสที่คุณจะต้องเขียน คุณจะไม่ต้องพุ่งออกจากชาร์ตในอีกไม่กี่นาทีเตรียมพร้อมที่จะลงทุนเวลาเรียนรู้จริงแล้วเขียนโค้ดจำนวนมากเพื่อสร้างแผนภูมิที่ค่อนข้างง่าย

หากความต้องการสร้างแผนภูมิของคุณเป็นมาตรฐานที่สมเหตุสมผลเช่นคุณต้องการกราฟเส้นหรือกราฟแท่งหรืออาจเป็นแผนภูมิวงกลมหรือสองรูปแบบที่มีการโต้ตอบที่ จำกัด คุณควรดูวิธีแก้ไขปัญหาแบบผ้าใบ จะไม่มีเส้นโค้งการเรียนรู้ใด ๆ คุณจะสามารถรับแผนภูมิขั้นพื้นฐานไปได้ภายในไม่กี่นาทีคุณไม่จำเป็นต้องเขียนโค้ดจำนวนมากอีกสองสามบรรทัดของ javascript / jquery พื้นฐานจะเป็นสิ่งที่คุณต้องการ แน่นอนว่าคุณจะสามารถสร้างแผนภูมิประเภทเฉพาะที่ห้องสมุดสนับสนุนซึ่งโดยทั่วไปจะ จำกัด เฉพาะรสชาติของบรรทัดบาร์และพาย ตัวเลือกการโต้ตอบจะถูก จำกัด อย่างมากกล่าวคือไม่มีอยู่จริงในห้องสมุดหลายแห่งแม้ว่าจะมีเอฟเฟกต์โฮเวอร์ที่ จำกัด บางอย่างที่ทำได้ดีกว่า

ฉันไปกับ JQplot ซึ่งเป็นโซลูชั่นแบบอิงผ้าใบเนื่องจากฉันต้องการแผนภูมิมาตรฐานบางประเภทเท่านั้น จากการวิจัยของฉันและเล่นกับตัวเลือกต่าง ๆ ฉันพบว่ามันมีคุณสมบัติครบถ้วน (ถ้าคุณอยู่หลังชาร์ตมาตรฐาน) และใช้งานง่ายมากดังนั้นฉันจะแนะนำถ้าความต้องการของคุณคล้ายกัน

เพื่อสรุปง่ายและต้องการแผนภูมิตอนนี้จากนั้นไปกับ JQplot คอมเพล็กซ์ / แตกต่างกันและไม่กดเวลาจากนั้นไปกับราฟาเอลและเพื่อน


14

jqPlotยอดเยี่ยม หากความต้องการของคุณค่อนข้าง "ปกติ" และคุณเพียงต้องการวาดแผนภูมิบางอย่างคุณอาจต้องเผชิญกับจำนวนตัวเลือกการสร้างแผนภูมิ js สมมติว่าคุณไม่ต้องการทำการวิจัยเป็นเวลาหลายชั่วโมงเพียงไปกับ jqPlot เพราะอาจเป็นทางออกที่ดีที่สุดของคุณ ครอบคลุมกรณีการใช้งานส่วนใหญ่สำหรับคนส่วนใหญ่เป็นอย่างดี ทางเลือกบางอย่างมีความเชี่ยวชาญในแผนภูมิบางประเภทหรือสร้างขึ้นโดยคำนึงถึงกรณีการใช้งานบางอย่าง


ฉันก็คิดเช่นกันหลังจากทำวิจัย ตอนนี้ดูเหมือนว่าหนึ่งในไลบรารีแผนภูมิ JS ฟรีที่ดีที่สุดที่มีอยู่
jturcotte

4

เนื่องจากคำตอบบางอย่างล่าช้าลอง d3.js
http://mbostock.github.com/d3/

มันเป็นความต่อเนื่องของโปรโตวิส
ความแตกต่างใหญ่ในการลอยอยู่ในจำนวนของคุณสมบัติที่รองรับ
แม้ว่าจุดแข็งอาจจะง่ายกว่า แต่ d3.js มีประสิทธิภาพมากกว่าแน่นอน


3

Flotrเป็นอีกหนึ่งไลบรารี Javascript ล้วนที่มีพื้นฐานมาจาก Prototype และได้รับแรงบันดาลใจจากFlot



3

ฉันขอแนะนำgRaphaëlสำหรับการสร้างแผนภูมิ JavaScript อย่างแท้จริงพร้อมกับไลบรารีกราฟิกแบบเวกเตอร์ JavaScript อันบริสุทธิ์ที่สร้างขึ้นบน ( Raphaël )

ปัจจุบันgRaphaëlรองรับ Firefox 3.0+, Safari 3.0+, Opera 9.5+ และ Internet Explorer 6.0+


1
เพียงแค่ต้องการให้หัวขึ้นว่าไม่มีเอกสารสำหรับ lib นี้แม้ว่ามันจะดีมาก
วงโคจร


3

อีกอย่างคือ RGraph: แผนภูมิ Javascript และกราฟไลบรารี:

http://www.rgraph.net

Canvas ใช้ดังนั้นจึงรวดเร็วและมีแผนภูมิที่แตกต่างกันประมาณ 20 ชนิด ฟรีสำหรับการใช้ที่ไม่ใช่เชิงพาณิชย์เช่นกัน!


2

ที่ชื่นชอบ (ลอย) ได้รับการกล่าวถึงแล้ว

แต่ต้องแน่ใจว่าจะตรวจสอบOrtho มันยอดเยี่ยมสำหรับแผนภูมิต้นไม้และเส้นเวลา


2

มีกิจกรรมมากมายในไลบรารีการสร้างแผนภูมิ dojo และสิ่งที่ดีมากที่ฉันใช้ในแอปพลิเคชัน AIR โดยไม่มีปัญหาก็ยอดเยี่ยม! ดูตัวอย่างได้ที่นั่นhttp://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/




2

เราเพิ่งซื้อลิขสิทธิ์TechOctave Charts Suiteสำหรับการเริ่มต้นใหม่ของเรา ฉันขอแนะนำพวกเขา การออกใบอนุญาตนั้นง่ายมาก แผนภูมิดูดีมาก! มันง่ายในการเริ่มต้นและมี API ที่ทรงพลังเมื่อเราต้องการ ฉันตกตะลึงว่ารหัสนั้นสะอาดและสามารถขยายได้อย่างไร มีความสุขมากกับการเลือกของเรา



1

ไม่ใช่ห้องสมุด Javascript แต่อาจเป็นทางเลือกที่เหมาะสมลองดูGoogle Chartsที่คุณสามารถสร้างแผนภูมิโดยส่งข้อมูลการสอบถามไปยังบริการเว็บของพวกเขา




1

Sencha ซื้อ Raphael และตอนนี้ชาร์ตของพวกเขาเป็นจาวาสคริปต์ล้วนๆจากเวอร์ชัน 4 Emprise และ HighCharts ที่กล่าวถึงข้างต้นเป็นรายการโปรดสองรายการของฉัน

http://www.sencha.com/



0

ฉันสามารถขอแนะนำArcadiaCharts ห้องสมุดสร้างแผนภูมิระดับมืออาชีพใหม่สำหรับ JavaScript และ GWT ทำงานในเบราว์เซอร์ทั้งหมดโดยไม่มีปลั๊กอิน ใช้งานง่ายและรวดเร็ว: สร้างแผนภูมิที่ดูดีด้วยรหัสเพียงไม่กี่บรรทัด ฟรีสำหรับการใช้ที่ไม่ใช่เชิงพาณิชย์


ฉันกำลังเล่นกับสิ่งนี้และฉันสังเกตเห็นว่าไม่มีทางที่จะได้รับใบอนุญาตการค้าบนเว็บไซต์ ในความเป็นจริงเว็บไซต์ไม่ชัดเจนว่าฟรีหรือไม่
zumalifeguard

คุณพูดถูก เว็บไซต์ที่ได้รับการปรับปรุงเพื่อให้ขณะนี้คุณสามารถหาที่เหมาะกับใบอนุญาตการค้าความต้องการของคุณ: ArcadiaCharts
Hoang-Tran Vo


0

ในกรณีที่คุณต้องการคือแผนภูมิแท่งเท่านั้น ฉันเผยแพร่รหัสบางอย่างที่ฉันใช้ในโครงการเก่า มีคนบอกฉันว่าการติดตั้ง VML นั้นใช้งานไม่ได้กับ IE เวอร์ชันล่าสุด แต่ SVG ควรใช้งานได้ดี อาจจะกลับไปที่โครงการและปล่อย renderers ฝั่งเซิร์ฟเวอร์บางอย่างที่ฉันมีอยู่แล้วและอาจเป็นเลเยอร์การแสดงผล WebGL มีลิงค์: http://blog.conquex.com/?p=64


0

อาจไม่ใช่สิ่งที่ OP ต้องการ แต่เนื่องจากคำถามนี้กลายเป็นรายการของตัวเลือกไลบรารีแผนภูมิ JS: jQuery Sparklinesเจ๋งจริงๆ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.