หากต้องการเพิ่มคำตอบที่ยอดเยี่ยมของ @ Ricardo ฉันได้ทำอะไรที่คล้ายกันมากด้วย อันที่จริงฉันจะไม่ผิดถ้าฉันบอกว่าฉันไปไกลกว่านี้อีกขั้นหนึ่ง จึงอยากจะแบ่งปันแนวทาง
ฉันได้สร้าง wrapper บนไลบรารี highchart แล้ว สิ่งนี้ให้ประโยชน์หลายประการ ตามมาด้วยข้อได้เปรียบหลักที่สนับสนุนให้เดินไปในเส้นทางนี้
- การแยกส่วน: แยกโค้ดของคุณออกจาก Highchart
- อัปเกรดอย่างง่ายดาย: Wrapper นี้จะเป็นโค้ดเดียวที่จะต้องแก้ไขในกรณีที่มีการเปลี่ยนแปลงใดๆ ใน highchart api หลังจากอัปเกรด หรือแม้กระทั่งหากใครตัดสินใจย้ายไปยังไลบรารีการสร้างแผนภูมิอื่นโดยสิ้นเชิง (แม้จะจาก Highchart ถึง highstock อาจละเอียดถี่ถ้วนหากแอปพลิเคชันของคุณใช้แผนภูมิอย่างกว้างขวาง)
- ใช้งานง่าย: wrapper api นั้นเรียบง่ายมาก มีเพียงสิ่งที่อาจแตกต่างกันออกไปเท่านั้นที่จะถูกเปิดเผยเป็นตัวเลือก (ซึ่งค่าของมันจะไม่เหมือนกับวัตถุ js แบบลึกเช่น HC มีอยู่แล้ว ซึ่งส่วนใหญ่เป็น 1 ระดับ deep) แต่ละอันมีค่าเริ่มต้น ดังนั้นส่วนใหญ่แล้วการสร้างแผนภูมิของเรานั้นสั้นมาก โดยที่ Constructor รับวัตถุ 1
options
ที่มีคุณสมบัติเพียง 4-5 รายการ ซึ่งค่าเริ่มต้นไม่เหมาะกับแผนภูมิที่อยู่ระหว่างการสร้าง
- UX ที่สอดคล้องกัน: รูปลักษณ์และการใช้งานที่สอดคล้องกันทั่วทั้งแอปพลิเคชัน เช่น รูปแบบและตำแหน่งของคำแนะนำเครื่องมือ สี ตระกูลแบบอักษร สี ปุ่มแถบเครื่องมือ (ส่งออก) ฯลฯ
- หลีกเลี่ยงการทำซ้ำ: แน่นอนว่าในฐานะคำตอบที่ถูกต้องของคำถามที่ถาม จะต้องหลีกเลี่ยงการทำซ้ำ และทำได้ในระดับมาก
นี่คือลักษณะที่ options
มีลักษณะเป็นค่าเริ่มต้น
defaults : {
chartType : "line",
startTime : 0,
interval : 1000,
chartData : [],
title : "Product Name",
navigator : true,
legends : true,
presetTimeRanges : [],
primaryToolbarButtons : true,
secondaryToolbarButtons : true,
zoomX : true,
zoomY : false,
height : null,
width : null,
panning : false,
reflow : false,
yDecimals : 2,
container : "container",
allowFullScreen : true,
credits : false,
showAll : false,
fontSize : "normal", // other option available is "small"
showBtnsInNewTab : false,
xAxisTitle : null,
yAxisTitle : null,
onLoad : null,
pointMarkers : false,
categories : []
}
อย่างที่คุณเห็น โดยส่วนใหญ่แล้ว chartData
เท่านั้นที่เปลี่ยนแปลง แม้ว่าคุณจะต้องตั้งค่าคุณสมบัติบางอย่าง ส่วนใหญ่จะเป็นเพียงประเภท true/false เท่านั้น ไม่มีอะไรที่เหมือนกับความน่ากลัวที่ตัวสร้าง Highchart คาดหวัง (ไม่ได้วิจารณ์พวกเขา จำนวนตัวเลือกที่ให้นั้นน่าทึ่งมากจากการปรับแต่ง Point of View แต่สำหรับนักพัฒนาทุกคนใน ทีมงานจะเข้าใจและเชี่ยวชาญอาจต้องใช้เวลาสักระยะ)
ดังนั้นการสร้างแผนภูมิจึงเป็นเรื่องง่ายๆ
var chart=new myLib.Chart({
chartData : [[1000000,1],[2000000,2],[3000000,1],[4000000,5]]
});
person
Jugal Thakkar
schedule
20.08.2012