السلام عليكم
اليوم سنناقش آخر نوع من أنواع الرسوم البيانية التقليدية من نوع Category Dataset لنبدأ في الدروس التالية بنوع آخر من الرسوم البيانية
اليوم سنناقش الرسم البياني StackedArea Chart
لن نجد الكثير من الصعوبة في فهم هذا الدرس كل ما علينا فعله هو مراجعة درس الـ Area Chart وهي نفس المبدأ لكن بدل أن تتوضع الأقسام المراد تمثيلها بيانيا ً أمام بعضها البعض أفقياً ستتوضع فوق بعضها البعض عامودياً
والتعديل سيكون فقط في الخطوة الثانية create a chart (كما نلاحظ أن هذه الخطوة هي محور الرسوم البيانية لانه هي التي تحدد شكل الرسم وأغلب الرسوم متشابهة في كل الأجزاء تقريباً وتختلف في هذه النقطة)
[code]// create a chart... JFreeChart chart = ChartFactory.createStackedAreaChart( "Stacked Area Chart Demo", // chart title "Category", // domain axis label "Value", // range axis label dataset, // data PlotOrientation.VERTICAL, // orientation true, // include legend true, // tooltips? false // URLs? );
أما الكود كاملاً مع الرسم الناتج :
import java.awt.Color;
import java.awt.Dimension;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class StackedAreaChart extends ApplicationFrame {
public StackedAreaChart(String title) {
super(title);
// create a dataset...
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Row 1", "Column 1");
dataset.addValue(5.0, "Row 1", "Column 2");
dataset.addValue(3.0, "Row 1", "Column 3");
dataset.addValue(2.0, "Row 2", "Column 1");
dataset.addValue(3.0, "Row 2", "Column 2");
dataset.addValue(2.0, "Row 2", "Column 3");
dataset.addValue(4.0, "Row 3", "Column 1");
dataset.addValue(1.5, "Row 3", "Column 3");
// create a chart...
JFreeChart chart = ChartFactory.createStackedAreaChart(
"Stacked Area Chart Demo", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);
// add the chart to a panel...
ChartPanel chartPanel = new ChartPanel(chart, false);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
// Extras and the modifications...
//1- set colors for External background
chart.setBackgroundPaint(Color.yellow);
//2- set colors for Enternal background
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.white);
//3- set colors for grid lines
plot.setRangeGridlinePaint(Color.black);
}
/**
* Starting point for the demonstration application.
*
* @param args ignored.
*/
public static void main(String[] args) {
StackedAreaChart demo = new StackedAreaChart("Stacked Area Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}بالنسبة لهذا النوع أو أي نوع آخر لو هناك أي استفسار فأنا جاهز
وهكذا نكون وصلنا الى خاتمة هذا النوع من الرسوم البيانية الذي يعتمد على مبدأ الـ Category Dataset وقد أصريت على شرح كافة أنواعها وتوحيد شكل الكود ليكون على نفس المبدأ في كل الانواع في الرسوم البيانية سعياً وراء التبسيط والسهولة
وابتداءا من الدرس القادم سيكون شرحنا لنوع آخر من الرسوم تعتمد مبدأ الـ XY Dataset
أتمنى لكم الاستفادة والنجاح وشكرا على المتابعة وبالتوفيق
والسلام عليكم
تم تعديل هذه المشاركة بواسطة vector_ever في 9 فبراير 2012 في 14:41
إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ
رسم المخططات البيانية بواسطة الجافا
كتاب تحليل وتصميم نظم المعلومات