javafx
चार्ट
खोज…
पाई चार्ट
PieChart
वर्ग सर्कल के रूप में डेटा खींचता है जिसे स्लाइस में विभाजित किया गया है। प्रत्येक टुकड़ा एक विशेष मूल्य के लिए प्रतिशत (भाग) का प्रतिनिधित्व करता है। पाई चार्ट डेटा PieChart.Data
ऑब्जेक्ट्स में लिपटा हुआ है। प्रत्येक PieChart.Data
ऑब्जेक्ट में दो फ़ील्ड हैं: पाई स्लाइस का नाम और इसके संबंधित मूल्य।
कंस्ट्रक्टर्स
पाई चार्ट बनाने के लिए, हमें PieChart
वर्ग का ऑब्जेक्ट बनाने की आवश्यकता है। हमारे निर्माण के लिए दो कंस्ट्रक्टर दिए गए हैं। उनमें से एक एक खाली चार्ट बनाता है जो तब तक कुछ भी प्रदर्शित नहीं करेगा जब तक कि डेटा setData
विधि के साथ सेट न हो:
PieChart pieChart = new PieChart(); // Creates an empty pie chart
और दूसरे को एक पैरामीटर के रूप में पारित करने के लिए PieChart.Data
एक ObservableList
PieChart.Data
की आवश्यकता होती है।
ObservableList<PieChart.Data> valueList = FXCollections.observableArrayList(
new PieChart.Data("Cats", 50),
new PieChart.Data("Dogs", 50));
PieChart pieChart(valueList); // Creates a chart with the given data
डेटा
पाई स्लाइस के मूल्यों को 100 तक करने की आवश्यकता नहीं है, क्योंकि स्लाइस के आकार की गणना सभी मूल्यों के योग के अनुपात में की जाएगी।
जिस क्रम में सूची में डेटा प्रविष्टियां जोड़ी जाती हैं, वह चार्ट पर उनकी स्थिति का निर्धारण करेगा। डिफ़ॉल्ट रूप से उन्हें दक्षिणावर्त रखा जाता है, लेकिन यह व्यवहार उलटा हो सकता है:
pieChart.setClockwise(false);
उदाहरण
निम्नलिखित उदाहरण एक साधारण पाई चार्ट बनाता है:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
ObservableList<PieChart.Data> valueList = FXCollections.observableArrayList(
new PieChart.Data("Android", 55),
new PieChart.Data("IOS", 33),
new PieChart.Data("Windows", 12));
// create a pieChart with valueList data.
PieChart pieChart = new PieChart(valueList);
pieChart.setTitle("Popularity of Mobile OS");
//adding pieChart to the root.
root.getChildren().addAll(pieChart);
Scene scene = new Scene(root, 450, 450);
primaryStage.setTitle("Pie Chart Demo");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
आउटपुट:
इंटरएक्टिव पाई चार्ट
डिफ़ॉल्ट रूप से, PieChart
किसी भी ईवेंट को हैंडल नहीं करता है, लेकिन इस व्यवहार को बदला जा सकता है क्योंकि प्रत्येक पाई स्लाइस एक JavaFX Node
।
नीचे दिए गए उदाहरण में हम डेटा को इनिशियलाइज़ करते हैं, इसे चार्ट में असाइन करते हैं, और फिर हम प्रत्येक स्लाइस में टूलटिप्स को जोड़ते हुए डेटा सेट पर पुनरावृति करते हैं, ताकि सामान्य रूप से छिपे हुए मूल्यों को उपयोगकर्ता के सामने प्रस्तुत किया जा सके।
ObservableList<PieChart.Data> valueList = FXCollections.observableArrayList(
new PieChart.Data("Nitrogen", 7809),
new PieChart.Data("Oxygen", 2195),
new PieChart.Data("Other", 93));
PieChart pieChart = new PieChart(valueList);
pieChart.setTitle("Air composition");
pieChart.getData().forEach(data -> {
String percentage = String.format("%.2f%%", (data.getPieValue() / 100));
Tooltip toolTip = new Tooltip(percentage);
Tooltip.install(data.getNode(), toolTip);
});
पंक्ति चार्ट
LineChart
वर्ग डेटा को सीधी रेखाओं से जुड़े डेटा बिंदुओं की एक श्रृंखला के रूप में प्रस्तुत करता है। प्रत्येक डेटा बिंदु XYChart.Data
ऑब्जेक्ट में लपेटा जाता है, और डेटा बिंदु XYChart.Series
में समूहीकृत होते हैं।
प्रत्येक XYChart.Data
ऑब्जेक्ट में दो फ़ील्ड होते हैं, जिन्हें getXValue
और getYValue
का उपयोग करके एक्सेस किया जा सकता है, जो एक चार्ट पर x और ay मान के अनुरूप होता है।
XYChart.Data data = new XYChart.Data(1,3);
System.out.println(data.getXValue()); // Will print 1
System.out.println(data.getYValue()); // Will print 3
अक्ष
इससे पहले कि हम एक LineChart
हमें इसकी कुल्हाड़ियों को परिभाषित करने की आवश्यकता है। उदाहरण के लिए, NumberAxis
वर्ग का डिफॉल्ट, नो- NumberAxis
एक ऑटो-रेंज एक्सिस बनाएगा, जो उपयोग करने के लिए तैयार है और इसके लिए किसी और कॉन्फ़िगरेशन की आवश्यकता नहीं है।
Axis xAxis = new NumberAxis();
उदाहरण
नीचे दिए गए पूर्ण उदाहरण में हम डेटा की दो श्रृंखला बनाते हैं जो एक ही चार्ट पर प्रदर्शित होगी। कुल्हाड़ियों के लेबल, पर्वतमाला और टिक मूल्य स्पष्ट रूप से परिभाषित हैं।
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
// Create empty series
ObservableList<XYChart.Series> seriesList = FXCollections.observableArrayList();
// Create data set for the first employee and add it to the series
ObservableList<XYChart.Data> aList = FXCollections.observableArrayList(
new XYChart.Data(0, 0),
new XYChart.Data(2, 6),
new XYChart.Data(4, 37),
new XYChart.Data(6, 82),
new XYChart.Data(8, 115)
);
seriesList.add(new XYChart.Series("Employee A", aList));
// Create data set for the second employee and add it to the series
ObservableList<XYChart.Data> bList = FXCollections.observableArrayList(
new XYChart.Data(0, 0),
new XYChart.Data(2, 43),
new XYChart.Data(4, 51),
new XYChart.Data(6, 64),
new XYChart.Data(8, 92)
);
seriesList.add(new XYChart.Series("Employee B", bList));
// Create axes
Axis xAxis = new NumberAxis("Hours worked", 0, 8, 1);
Axis yAxis = new NumberAxis("Lines written", 0, 150, 10);
LineChart chart = new LineChart(xAxis, yAxis, seriesList);
root.getChildren().add(chart);
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}