JavaFX - แผนภูมิ
โดยทั่วไปแผนภูมิคือการแสดงข้อมูลแบบกราฟิก มีแผนภูมิหลายประเภทเพื่อแสดงข้อมูลเช่นBar Chart, Pie Chart, Line Chart, Scatter Chart, เป็นต้น
JavaFX ให้การสนับสนุนสำหรับไฟล์ Pie Charts และ XY Charts. แผนภูมิที่แสดงบนระนาบ XY ได้แก่AreaChart, BarChart, BubbleChart, LineChart, ScatterChart, StackedAreaChart, StackedBarChart, เป็นต้น
แต่ละแผนภูมิแสดงโดยคลาสและแผนภูมิทั้งหมดนี้เป็นของแพ็กเกจ javafx.scene.chart. ชั้นเรียนชื่อChart เป็นคลาสฐานของแผนภูมิทั้งหมดใน JavaFX และ XYChart เป็นคลาสฐานของแผนภูมิทั้งหมดที่วาดบนระนาบ XY
การสร้างแผนภูมิ
ในการสร้างแผนภูมิคุณต้อง -
- กำหนดแกนของแผนภูมิ
- เพิ่มระดับชั้นเรียนตามลำดับ
- จัดเตรียมและส่งข้อมูลไปยังแผนภูมิ
การสร้างอินสแตนซ์คลาสที่เกี่ยวข้อง
ในการสร้างแผนภูมิให้สร้างอินสแตนซ์คลาสตามลำดับ ตัวอย่างเช่นหากคุณต้องการสร้างแผนภูมิเส้นคุณต้องสร้างอินสแตนซ์ของคลาสที่มีชื่อว่าLine ดังต่อไปนี้ -
LineChart linechart = new LineChart(xAxis, yAxis);
ตามที่สังเกตในโค้ดด้านบนในขณะที่สร้างอินสแตนซ์คุณต้องส่งผ่านวัตถุสองชิ้นที่แทนแกน X และ Y ของแผนภูมิตามลำดับ
การกำหนดแกน
โดยทั่วไปแกนของแผนภูมิสามารถแสดงโดย -
- ตัวเลขเช่นประชากรอายุและ
- หมวดหมู่ต่างๆเช่นวันในสัปดาห์ประเทศ
ใน JavaFX แกนคือคลาสนามธรรมที่แทนแกน X หรือ Y มีคลาสย่อยสองคลาสเพื่อกำหนดแกนแต่ละประเภท ได้แก่CategoryAxis และ NumberAxis ดังแสดงในแผนภาพต่อไปนี้ -
Category Axis- โดยการสร้างอินสแตนซ์คลาสนี้คุณสามารถกำหนด (สร้าง) แกน X หรือ Y ตามที่แต่ละค่าแสดงถึงหมวดหมู่ คุณสามารถกำหนดแกนหมวดหมู่ได้โดยสร้างอินสแตนซ์คลาสนี้ดังที่แสดงด้านล่าง -
CategoryAxis xAxis = new CategoryAxis();
สำหรับแกนนี้คุณต้องกำหนดรายการประเภทและป้ายกำกับให้กับแกนดังที่แสดงด้านล่าง -
//setting the list of categories.
xAxis.setCategories(FXCollections.<String>observableArrayList
(Arrays.asList("n ame1", "name2"….)));
//Setting label to the axis
xAxis.setLabel("name of the axis ");
NumberAxis- โดยการสร้างอินสแตนซ์คลาสนี้คุณสามารถกำหนด (สร้าง) แกน X หรือ Y ซึ่งแต่ละค่าแทนค่าตัวเลข คุณสามารถใช้ Number ประเภทใดก็ได้กับสิ่งนี้Axis, Long, Double, BigDecimalฯลฯ คุณสามารถกำหนดแกน Number ได้โดยสร้างอินสแตนซ์คลาสนี้ดังนี้ -
//Defining the axis
NumberAxis yAxis = new NumberAxis();
//Setting labelto the axis
yAxis.setLabel("name of the axis");
การส่งผ่านข้อมูลไปยังแผนภูมิ XY
แผนภูมิ XY ทั้งหมดจะแสดงตามระนาบ XY ในการพล็อตชุดของจุดในแผนภูมิเราจำเป็นต้องระบุชุดพิกัด XY
<X,Y> คลาสของ javafx.scene.chartแพ็กเกจคือคลาสที่ใช้ซึ่งคุณสามารถส่งข้อมูลไปยังแผนภูมิได้ คลาสนี้มีรายการซีรีส์ที่มีชื่อที่สังเกตได้ คุณสามารถรับรายการนี้โดยใช้ไฟล์getData() วิธีการของ XYChart.Series class ดังรูปด้านล่าง -
ObservableList list = series.getData();
ที่ไหน series เป็นเป้าหมายของไฟล์ XYChart.Seriesชั้นเรียน คุณสามารถเพิ่มข้อมูลลงในรายการนี้โดยใช้ไฟล์add() วิธีการดังนี้ -
list.add(new XYChart.Data(x-axis data, y-axis data));
สองบรรทัดนี้สามารถเขียนร่วมกันได้ดังแสดงด้านล่าง -
series.getData().add(new XYChart.Data(x-axis data, y-axis data));
ตารางต่อไปนี้ให้คำอธิบายของแผนภูมิต่างๆ (คลาส) ที่จัดทำโดย JavaFX -
ส. เลขที่ | แผนภูมิและคำอธิบาย |
---|---|
1 | แผนภูมิวงกลม แผนภูมิวงกลมคือการแสดงค่าเป็นส่วนของวงกลมที่มีสีต่างกัน ชิ้นส่วนเหล่านี้มีป้ายกำกับและค่าที่สอดคล้องกับแต่ละชิ้นจะแสดงในแผนภูมิ ใน JavaFX แผนภูมิวงกลมจะแสดงโดยคลาสที่มีชื่อว่า PieChart. คลาสนี้เป็นของแพ็คเกจjavafx.scene.chart. |
2 | แผนภูมิเส้น แผนภูมิเส้นหรือกราฟเส้นแสดงข้อมูลเป็นชุดของจุดข้อมูล (เครื่องหมาย) ที่เชื่อมต่อกันด้วยส่วนของเส้นตรง แผนภูมิเส้นแสดงให้เห็นว่าข้อมูลเปลี่ยนแปลงอย่างไรที่ความถี่เวลาเท่ากัน ใน JavaFX แผนภูมิเส้นจะแสดงโดยคลาสที่มีชื่อว่า LineChart. คลาสนี้เป็นของแพ็คเกจjavafx.scene.chart. ด้วยการสร้างอินสแตนซ์คลาสนี้คุณสามารถสร้างโหนด LineChart ใน JavaFX |
3 | แผนภูมิพื้นที่ แผนภูมิพื้นที่ใช้เพื่อวาดแผนภูมิตามพื้นที่ แปลงพื้นที่ระหว่างชุดของจุดและแกนที่กำหนด โดยทั่วไปแผนภูมินี้ใช้เพื่อเปรียบเทียบปริมาณสองปริมาณ ใน JavaFX แผนภูมิพื้นที่จะแสดงโดยคลาสที่มีชื่อว่า AreaChart. คลาสนี้เป็นของแพ็คเกจjavafx.scene.chart. ด้วยการสร้างอินสแตนซ์คลาสนี้คุณสามารถสร้างโหนด AreaChart ใน JavaFX |
4 | แผนภูมิแท่ง แผนภูมิแท่งใช้เพื่อแสดงข้อมูลที่จัดกลุ่มโดยใช้แท่งสี่เหลี่ยม ความยาวของแถบเหล่านี้แสดงถึงค่า แท่งในแผนภูมิแท่งสามารถลงจุดในแนวตั้งหรือแนวนอน ใน JavaFX แผนภูมิแท่งจะแสดงโดยคลาสที่มีชื่อว่า BarChart. คลาสนี้เป็นของแพ็คเกจjavafx.scene.chart. โดยการสร้างอินสแตนซ์คลาสนี้คุณสามารถสร้างโหนด BarChart ใน JavaFX |
5 | แผนภูมิฟอง แผนภูมิฟองใช้เพื่อจัดวางข้อมูลสามมิติ มิติที่สามจะแสดงด้วยขนาด (รัศมี) ของฟองอากาศ ใน JavaFX แผนภูมิ Bubble แสดงโดยคลาสที่ชื่อ BubbleChart. คลาสนี้เป็นของแพ็คเกจjavafx.scene.chart. ด้วยการสร้างอินสแตนซ์คลาสนี้คุณสามารถสร้างโหนด BubbleChart ใน JavaFX |
6 | แผนภูมิกระจาย scatterplot คือกราฟประเภทหนึ่งที่ใช้ค่าจากสองตัวแปรที่ลงจุดในระนาบคาร์ทีเซียน โดยปกติจะใช้เพื่อหาความสัมพันธ์ระหว่างสองตัวแปร ใน JavaFX แผนภูมิกระจายจะแสดงโดยคลาสที่มีชื่อว่า ScatterChart. คลาสนี้เป็นของแพ็คเกจjavafx.scene.chart. โดยการสร้างอินสแตนซ์คลาสนี้คุณสามารถสร้างโหนด ScatterChart ใน JavaFX |
7 | แผนภูมิพื้นที่แบบเรียงซ้อน ใน JavaFX แผนภูมิพื้นที่แบบเรียงซ้อนจะแสดงโดยคลาสที่มีชื่อว่า StackedAreaChart. คลาสนี้เป็นของแพ็คเกจ javafx.scene.chart. ด้วยการสร้างอินสแตนซ์คลาสนี้คุณสามารถสร้างโหนด StackedAreaChart ใน JavaFX |
8 | แผนภูมิแท่งแบบเรียงซ้อน ใน JavaFX แผนภูมิแท่งแบบเรียงซ้อนจะแสดงโดยคลาสที่มีชื่อว่า StackedBarChart. คลาสนี้เป็นของแพ็คเกจ javafx.scene.chart. โดยการสร้างอินสแตนซ์คลาสนี้คุณสามารถสร้างโหนด StackedBarChart ใน JavaFX |