الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

رسم المخططات البيانية

مثبّترائج
بدأه vector_ever في 18 يناير 2012 · 84 رد · 37,953 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#51

كم انت عظيم اخي

eLL28359.jpg
#52

بارك الله يك اخي

فعلا دروس رائعة و كنت في حاجة اليها

فعلا سيبقى هدا الموضوع مرجعا عربيا لكل مسلم

جازاك الله خيرا عنا كل الجزاء

البرمجة ...البداية و النهاية

#53

شكرا لكل الأخوة على ردودهم المشجعة على كل حال انا حاليا مشغول قليلا ولكن وعد مني انني ساتابع شرح دروس جديدة قريبا ان شاء الله

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#54

السلام عليكم

سنعود بعد فترة غياب الى اكمال هذه السلسلة من الدروس لكنني سأقوم بشرح الـ Polar Chart قبل غيرها من الدروس واليوم سنبدأ بدرس بسيط عن هذا الرسم المهم جدا جدا

فلنبدأ على بركة الله

كالعادة في الدروس السابقة نبدأ بالخطوات المعتادة

1- create a dataset

// create a dataset...
XYSeries series = new XYSeries("Average Size");
series.add(45, 40.0);
series.add(135.0, 45.0);
series.add(270.0, 30.0);

XYSeriesCollection xyDataset = new XYSeriesCollection(series);

هنا وضعنا احداثيات النقاط التي سيتم رسمها بشكل قطبي (حيث تكون أقطاب هذه النقاط محددة حسب الاحداثيات الواردة ضمن مدار دائري)

في البداية سيتم تقسيم الدائرة هنا الى قطاعات كل قطاع درجة الزاوية فيه مقدارها 45 درجة والقيمة الكلية للدائرة كما هو معروف 360 درجة

الآن سيتم حساب نصف القطر الممثل للدائرة حسب القيم الواردة الينا حيث لدينا القيم المعطاة حسب الأمر (series.add(A, B كل نقطة من هذه النقاط سواء كانت A أو B هي المسؤولة عن تحدد مكان النقطة المراد رسمها

حيث أن القيمة A هي المسؤولة عن تحديد مكان النقطة المراد رسمها على أي مقدار الزاوية المراد رسم النقطة بها هل على القطاع ذو الزاوية 40 او على الزاوية 50 او الزاوية 270 وهلكذا طبعا كما قلنا الرسم سيتم على دائرة لانه رسم قطبي

وبما ان أي نقطة ليتم رسمها لابد من تحديد احداثيات ثنائية لها (x,y) فنجن هنا بحاجة للجزء الثاني من الاحداثيات والذي تمثله النقطة B حيث ان القيمة العظمى للنقطة B من النقاط المعطاة تمثل القيمة المعطاة لنصف قطر الدائرة بمعنى نحن لدينا في مثالثا ثلاث نقاط والقيم الخاصة بـ B هي 40 و 45 و 30 وبما ان أكبر هذه القيم هي القيمة 45 فلذلك تكون قيمة نصف القطر الخاص بالدائرة هي 45

نعود الآن للنقطة B حيث هنا كل نقطة سيتم رسمها حسب مقدارها على نصف قطر الدائرة

وبمعنى أخر النقطة الأولى سيتم تحديد مكانها على القطاع ذو الزاوية 45 وعلى مسافة تساوي 40 على نصف قطر الدائرة والنقطة الثانية على القطاع 135 درجة وعلى مسافة 45 على نصف قطر الدائرة(لاحظ انه هذه النقطة مقدارها يساوي مقدار نصف الدائرة لذلك سيتم رسمها على اخر حد من حدود الدائرة) النقطة الثالثة احداثياتها على القطاع ذو الدرجة 270 وعلى القيمة 30 من على طول نصف القطر

أرجو ان تكون هذه النقطة واضحة لانه من دون فهم هذه النقطة لن نستطيع فهم هذا النوع من الرسوم

2- create a chart

//create a chart...
JFreeChart chart = ChartFactory.createPolarChart(
        "Polar Chart Demo", // chart title
        xyDataset, // data
         true, // include legend
         true, // tooltips?
         false // URLs? );
     );

أيضا لا جديد في باقي الخطوات فلنعرض الكود كاملا ونرى الرسم الناتج

import java.awt.Dimension;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class PolarChart extends ApplicationFrame {

    public PolarChart(String title) {
            super(title);

// create a dataset...
XYSeries series = new XYSeries("Average Size");
series.add(45, 40.0);
series.add(135.0, 45.0);
series.add(270.0, 30.0);

XYSeriesCollection xyDataset = new XYSeriesCollection(series);



//create a chart...
JFreeChart chart = ChartFactory.createPolarChart(
        "Polar Chart Demo", // chart title
        xyDataset, // data
         true, // include legend
         true, // tooltips?
         false // URLs? );
     );

// add the chart to a panel...
  ChartPanel chartPanel = new ChartPanel(chart, false);
  chartPanel.setPreferredSize(new Dimension(800, 570));
  setContentPane(chartPanel);
    }


		/**
		* Starting point for the demonstration application.
		*
		* @param args ignored.
		*/
  public static void main(final String[] args) {
  PolarChart chart = new PolarChart("Polar Chart");
  chart.pack();
  RefineryUtilities.centerFrameOnScreen(chart);
  chart.setVisible(true);
  }
}

post-152477-058633600 1336825407_thumb.j

المرفقات
Polar Chart1.jpg
1

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#55

السلام عليكم

اليوم نعود ونكمل مشوارنا مع هذه الدروس وساتكلم اليوم عن نفس موضوع الدرس السابق لكنني سأتوسع فيه وسيكون ليس عن رسم Polar Chart واحد انما عن عدة بيانات داخل المخطط الواحد اي Multi Polar Chart

وللأمانة الموضوع اخذ مني وقت وجهد كبير لانه هذا الموضع لم اجده في أي مرجع أجنبي ولا حتى في أي مثال او كود مشروح وخصوصا الخطوة الاخيرة التي اعتدنا أن نسميها Extras and the modifications

فلنبدأ على بركة الله

1- create a dataset

// create a dataset...
		  XYSeries series1 = new XYSeries("First");
		  series1.add(20.0, 45.0);
		  series1.add(240.0, 25.0);
		  series1.add(75.0, 50.0);
		  series1.add(150.0, 35.0);

		  XYSeries series2 = new XYSeries("Second");
		  series2.add(100.0, 20.0);
		  series2.add(300.0, 35.0);
		  series2.add(140.0, 50.0);
		  series2.add(66.0, 45.0);

		  XYSeries series3 = new XYSeries("Third");
		  series3.add(340.0, 25.0);
		  series3.add(180.0, 40.0);
		  series3.add(90.0, 30.0);
		  series3.add(60.0, 40.0);

		  XYSeriesCollection xyDataset = new XYSeriesCollection();
		  xyDataset.addSeries(series1);
		  xyDataset.addSeries(series2);
		  xyDataset.addSeries(series3);

قمنا بتمثيل ثلاثة سلاسل XYSeries كل واحدة فيها نقاط الاحداثيات المختلفة ليتم رسمها وهي على التوالي First, Second and Third

عن طريق الصنف XYSeriesCollection نقوم بعمل كائن نسميه xyDataset هذا الكائن سيتضمن بيانات النقاط الاحداثية للرسوم الخطية الثلاثة

2- create a chart

			// create a chart...
		  JFreeChart chart = ChartFactory.createPolarChart(
			        "MultiPolar Chart Demo", // chart title
			        xyDataset, // data
			         true, // include legend
			         true, // tooltips?
			         false // URLs? );
			     );

3- add the chart to a panel

		// add the chart to a panel...
					ChartPanel chartPanel = new ChartPanel(chart, false);
					chartPanel.setPreferredSize(new Dimension(800, 570));
					setContentPane(chartPanel);

4- Extras and the modifications وهنا سنقوم بعض الشروحات

وهي الخطوة الأخيرة وكما قلنا مسبقا مرارا وتكرارا انها خطوة اختيارية وتكملية وليست اجبارية انما تتضمن عدة خيارات تمكننا من تغيير بعض الامور في الشكل النهائي من ناحية الشكل وليس من ناحية النتيجة

وقد بذلت محهودا كبيرة في هذه الخطوة لتخرج بالشكل المرضي تماما

أولاً: تحديد لون الخلفية الخارجية

					//1- set colors for External background  
					chart.setBackgroundPaint(Color.lightGray);

ثانياً: تحديد لون الخلفية الداخلية

					//2- set colors for Internal background
					PolarPlot plot = (PolarPlot) chart.getPlot();
			        plot.setBackgroundPaint(Color.white);

ثالثاً. تثبيت وتحديد لون الخطوط داخل الخلفية الداخلية حيث يتم الرسم

			       //3- set colors for grid lines
			        plot.setRadiusGridlinePaint(Color.gray); // Polar grid lines
					plot.setAngleGridlinePaint(Color.black); // Sector lines (every sector is 45 degree)

رابعاً: تغيير ألوان الخطوط التي سيتم رسمها

					//4 - set colors for renderer
			        DefaultPolarItemRenderer renderer = new DefaultPolarItemRenderer();
					renderer.setSeriesPaint(0, Color.cyan);// color of first set of points
					renderer.setSeriesPaint(1, Color.red);// color of second set of points
					renderer.setSeriesPaint(2, Color.blue); // color of third set of points
					plot.setRenderer(renderer);

أما أخيرا اذا أردنا أن نجعل احد او بعض اوكل الـ Polar Chart مملوء أي ان تكون المساحة المرسومة داخلة مصمتة ومملوءة فالسطر التالي يقوم بذلك

			        renderer.setSeriesFilled(2, true);// to fill the third set of points

حيث قمنا باختيار الـ Polar Chart الثالث ووضعنا الخيار true لدلالة اننا نريد ملئ المساحة التي يمثلها هذا الرسم البياني

الشرح بالرسم للشكل الناتج

post-152477-062195100 1338212708_thumb.j

و اخيرا الكود كاملا

package XYPlot;

import java.awt.Color;
import java.awt.Dimension;
import org.jfree.chart.*;
import org.jfree.chart.plot.PolarPlot;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.renderer.DefaultPolarItemRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;


public class MultiPolarChart extends ApplicationFrame {

	public MultiPolarChart(String title) {
		super(title);


		// create a dataset...
		  XYSeries series1 = new XYSeries("First");
		  series1.add(20.0, 45.0);
		  series1.add(240.0, 25.0);
		  series1.add(75.0, 50.0);
		  series1.add(150.0, 35.0);

		  XYSeries series2 = new XYSeries("Second");
		  series2.add(100.0, 20.0);
		  series2.add(300.0, 35.0);
		  series2.add(140.0, 50.0);
		  series2.add(66.0, 45.0);

		  XYSeries series3 = new XYSeries("Third");
		  series3.add(340.0, 25.0);
		  series3.add(180.0, 40.0);
		  series3.add(90.0, 30.0);
		  series3.add(60.0, 40.0);

		  XYSeriesCollection xyDataset = new XYSeriesCollection();
		  xyDataset.addSeries(series1);
		  xyDataset.addSeries(series2);
		  xyDataset.addSeries(series3);

			// create a chart...
		  JFreeChart chart = ChartFactory.createPolarChart(
			        "MultiPolar Chart Demo", // chart title
			        xyDataset, // data
			         true, // include legend
			         true, // tooltips?
			         false // URLs? );
			     );

		// add the chart to a panel...
					ChartPanel chartPanel = new ChartPanel(chart, false);
					chartPanel.setPreferredSize(new Dimension(800, 570));
					setContentPane(chartPanel);


					// Extras and the modifications...

					//1- set colors for External background  
					chart.setBackgroundPaint(Color.lightGray);

					//2- set colors for Internal background
					PolarPlot plot = (PolarPlot) chart.getPlot();
			        plot.setBackgroundPaint(Color.white);

			       //3- set colors for grid lines
			        plot.setRadiusGridlinePaint(Color.gray); // Polar grid lines
					plot.setAngleGridlinePaint(Color.black); // Sector lines (every sector is 45 degree)

					//4 - set colors for renderer
			        DefaultPolarItemRenderer renderer = new DefaultPolarItemRenderer();
					renderer.setSeriesPaint(0, Color.cyan);// color of first set of points
					renderer.setSeriesPaint(1, Color.red);// color of second set of points
					renderer.setSeriesPaint(2, Color.blue); // color of third set of points
					plot.setRenderer(renderer);

			        renderer.setSeriesFilled(2, true);// to fill the third set of points

			}
			/**
			* Starting point for the demonstration application.
			*
			* @param args ignored.
			*/
			public static void main(String[] args) {
				MultiPolarChart demo = new MultiPolarChart("MultiPolar Chart Demo");
				demo.pack();
				RefineryUtilities.centerFrameOnScreen(demo);
				demo.setVisible(true);
				}

			}
المرفقات
MultiPolarChart.jpg
2

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#56

merci merci merci beaucoup

enfin j'ai trouvé ce que je cherche

حين تنكسر........لن يرممك سوى نفسك

و حين تنهزم ......لن تنصرك سوى نفسك

فقدرتك على الوقوف مرة اخرى ...لايملكها سواك ....فكن اقوى من الدنيا و ظروفها.

و مهما حدث لك ....لا تبكي و لكن ابتسم و دع الحياة تبكي من جبروت ابتسامتك

#57
inasse rahaf كتب:

merci merci merci beaucoup

enfin j'ai trouvé ce que je cherche

شكرا على ردك الكريم

لكن يا ريت نتلزم بالردود بلغتنا العربية الجميلة والابتعاد قدر الامكان عن اللغات الأجنبية

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#58

السلام عليكم

ممكن استعمال هذه المكتبة لانشاء خرائط

والف تحية وشكرا اخي

#59
khalfallah كتب:

السلام عليكم

ممكن استعمال هذه المكتبة لانشاء خرائط

والف تحية وشكرا اخي

ارجو ان توضح مقصدك بمعنى خرائط

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#60

اقصد بالخرائط مثلا اقوم بعمل احصاء للسكان مثلا الكثافة وارى توزيعها على الخريطة لبلد ما

والف تحية

#61
khalfallah كتب:

اقصد بالخرائط مثلا اقوم بعمل احصاء للسكان مثلا الكثافة وارى توزيعها على الخريطة لبلد ما

والف تحية

طيب اخي الكريم هل من الممكن ان تعطيني مثال متكامل بكل عناصره وبيناته ومعطياته وطلباته وايضا نوع الرسم المطلوب

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#62

ماشاء الله يا اخى vector_ever

درس اكثر من رائع جزاك لله خيرا

شوف أستخدمه في مشروع وأطلعك عليه إن شاء الله :)

برنامج Online Exam مفتوح المصدر

 

To Info:abdelrahman.awad@yahoo.com

 

 

\

#63

هل من الممكن اضافة مخطط الـ XY Scatter او XY Charts من فضلك

تماما مثل ما يوجد في الصور :

scattergraph02.png

250px-Scatter_diagram_for_quality_characteristic_XXX.svg.png

scatterp.gif

scatterplot1.jpg

ChartwoTrendLine.gif

strength.gif

age_scatterplot.gif

:lol:

كما أرجو منك ان تشرح لنا كيفية رسم المخططات البيانية 'أي مخطط كان' في الـ Excel مباشرة ، مع امكانية اضافة المعلومات :blush: من خلال الجافا طبعا

XY-Scatter-Plot.jpg

xy-scatter-chart.png

مشكور ... وبانتظار الرد :happy:

تم تعديل هذه المشاركة بواسطة المشاكـس5550 في 18 نوفمبر 2012 في 22:33

556891961.gif

I am learning from you

it is the programmer eye

#64
المشاكـس5550 كتب:

هل من الممكن اضافة مخطط الـ XY Scatter او XY Charts من فضلك

تماما مثل ما يوجد في الصور :

scattergraph02.png

250px-Scatter_diagram_for_quality_characteristic_XXX.svg.png

scatterp.gif

scatterplot1.jpg

ChartwoTrendLine.gif

strength.gif

age_scatterplot.gif

:lol:

كما أرجو منك ان تشرح لنا كيفية رسم المخططات البيانية 'أي مخطط كان' في الـ Excel مباشرة ، مع امكانية اضافة المعلومات :blush: من خلال الجافا طبعا

XY-Scatter-Plot.jpg

xy-scatter-chart.png

مشكور ... وبانتظار الرد :happy:

اهلا بك أخي الكريم

صراحة لم افهم سؤالك

هل المقصود هو شرح مخططات XY Scatter ام قصدك كتابة كود لصناعة واجهة فيها هذه المخططات كما في الصورة الأولى من سؤالك اخي الكريم

اما عن طلبك عن دمج هذه المخططات في الـ Excel فو الله انا شخصيا ضعيف جدا في التعامل مع الاكسل ولا اعرف ان كان هذا ممكن

لكن ان شاء الله ساحاول البحث والدراسة لارى ان كان هذا ممكن

وفقك الله

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#65
اقتباس
هل المقصود هو شرح مخططات XY Scatter ام قصدك كتابة كود لصناعة واجهة فيها هذه المخططات كما في الصورة الأولى من سؤالك اخي الكريم

أقصد كود انشاء هذه المخططات من خلال الجافا فقط :lol: ، آسف اذا كان طلبي غير مفهوم :happy:

شكرا

556891961.gif

I am learning from you

it is the programmer eye

#66
المشاكـس5550 كتب:

أقصد كود انشاء هذه المخططات من خلال الجافا فقط :lol: ، آسف اذا كان طلبي غير مفهوم :happy:

شكرا

أهلا اخي حياك الله واعذرني اخي للمرة الثانية لا استطيع ان افهم طلبك

يعني انت تريد كود يرسم الـ XY Scatter؟؟

ام ان هناك مقصد اخر؟؟

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#67
vector_ever كتب:

أهلا اخي حياك الله واعذرني اخي للمرة الثانية لا استطيع ان افهم طلبك

يعني انت تريد كود يرسم الـ XY Scatter؟؟

ام ان هناك مقصد اخر؟؟

تماما

أنا آسف على الالتباس والغموض في طلبي

الله يبارك فيك :)

556891961.gif

I am learning from you

it is the programmer eye

#68

السلام عليكم

اعود معكم مع درس جديد وبناءا على طلب من الأخ المشاكس 550 وهذه المرة سيكون الدرس عن الـ XY Scatter chart او مخططات النقط المبعثرة

في هذا الدرس سأقدم شرح سريع وبسيط لكتابة كود لهذا النوع من المخططات وفي درس لاحق سأقدم شرح اوفى لرسم عدة انواع في مخطط واحد بمزيد من التفصيل

الخطوات الاولى اصبحت الآن تقريبا معروفة ومع ذلك فلنبدأ على بركة الله

1- create a dataset

// create a dataset...
		  XYSeries series = new XYSeries("Average Weight");
		  series.add(4.0, 12.0);
		  series.add(7.0, 13.0);
		  series.add(8.0, 17.0);
		  series.add(11.0, 18.0);
		  series.add(13.0, 19.0);
		  series.add(14.0, 22.0);
		  series.add(15.0, 24.0);
		  series.add(17.0, 26.0);
		  series.add(18.0, 27.0);
		  series.add(20.0, 30.0);
		  series.add(21.0, 28.0);
		  series.add(22.0, 29.0);
		  series.add(23.0, 33.0);
		  series.add(24.0, 35.0);
		  series.add(28.0, 36.0);
		  series.add(29.0, 38.0);
		  series.add(31.0, 39.0);
		  series.add(34.0, 41.0);

		  XYSeriesCollection xyDataset = new XYSeriesCollection(series);

جرى شرحها في الدروس السابقة لكن ما يهمني هنا الخطوة التالية

2- create a chart

		// create a chart...
		  JFreeChart chart = ChartFactory.createScatterPlot(
					"XYScatter Chart Demo", // chart title
					"Age", // domain axis label
					"Weight", // range axis label
					xyDataset, // data
					PlotOrientation.VERTICAL, // orientation
					true, // include legend
					true, // tooltips?
					false // URLs?
					);

لاحظ أنه هنا الأمر برسم مخططات النقط المبعثرة التي تعتمد مبدأ الـ XY وفق الأمر createScatterPlot

لا جديد في باقي الخطوات فهي تكرير لكل ما سبق اترككم مع الكود والنتيجة

import java.awt.Dimension;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class XYScatterChart extends ApplicationFrame {

	public XYScatterChart(String title) {
		super(title);

		// create a dataset...
		  XYSeries series = new XYSeries("Average Weight");
		  series.add(4.0, 12.0);
		  series.add(7.0, 13.0);
		  series.add(8.0, 17.0);
		  series.add(11.0, 18.0);
		  series.add(13.0, 19.0);
		  series.add(14.0, 22.0);
		  series.add(15.0, 24.0);
		  series.add(17.0, 26.0);
		  series.add(18.0, 27.0);
		  series.add(20.0, 30.0);
		  series.add(21.0, 28.0);
		  series.add(22.0, 29.0);
		  series.add(23.0, 33.0);
		  series.add(24.0, 35.0);
		  series.add(28.0, 36.0);
		  series.add(29.0, 38.0);
		  series.add(31.0, 39.0);
		  series.add(34.0, 41.0);

		  XYSeriesCollection xyDataset = new XYSeriesCollection(series);


		// create a chart...
		  JFreeChart chart = ChartFactory.createScatterPlot(
					"XYScatter Chart Demo", // chart title
					"Age", // domain axis label
					"Weight", // range axis label
					xyDataset, // 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(600, 470));
			setContentPane(chartPanel);

	}
	/**
	* Starting point for the demonstration application.
	*
	* @param args ignored.
	*/
	public static void main(String[] args) {
		XYScatterChart demo = new XYScatterChart("XY Scatter Chart Demo");
		demo.pack();
		RefineryUtilities.centerFrameOnScreen(demo);
		demo.setVisible(true);
		}

	}

والنتيجة الشكل التالي

post-152477-015922100 1354315232_thumb.j

المرفقات
Scatter Chart.jpg
2

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#69
vector_ever كتب:

السلام عليكم

اعود معكم مع درس جديد وبناءا على طلب من الأخ المشاكس 550 وهذه المرة سيكون الدرس عن الـ XY Scatter chart او مخططات النقط المبعثرة

أطالب باضافة الرقم 5 الى اسمي :lol: ههههه

شكرا كثيييير أخوي Vector

وآسف اذا أزعجتك معي

+1

:happy:

556891961.gif

I am learning from you

it is the programmer eye

#70

الله يعطيك العافية :happy:

تم تعديل هذه المشاركة بواسطة المشاكـس5550 في 1 ديسمبر 2012 في 14:26

556891961.gif

I am learning from you

it is the programmer eye

#71

اهلا اخي المشاكس حياك الله وسامحني لاني نسيت رقم 5

واشكرك لاهتمامك بالموضوع وسؤالك ولولا ذلك لما خرجت مخططات النقط المبعثرة للنور

وقريبا ساكمل شروحات اخرى

1

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#72

السلام عليكم نكمل اليوم في درس جديد وهو تطوير واستكمال للدرس الذي سبقه والذي يتحدث عن موضوع النقط المبعثرة او الـ XY Scatter chart وسأتحدث هذه المرة عن المخططات المتعددة للنقط المبعثرة أو الـ Multi XY Scatter Chart

سأعمل مقارنة بين ثلاثة انواع من البيانات ورسم كل نوع رسم نقطي مجتمعة مع بعضها البعض ف مخطط واحد

فلنبدأ على بركة الله

1- create a dataset

//create a dataset...
XYSeries series1 = new XYSeries("First");
series1.add(4.0, 12.0);
series1.add(7.0, 13.0);
series1.add(8.0, 17.0);
series1.add(11.0, 18.0);
series1.add(13.0, 20.0);
series1.add(14.0, 21.0);
series1.add(15.0, 24.0);
series1.add(17.0, 26.0);
series1.add(18.0, 27.0);
series1.add(20.0, 30.0);
series1.add(21.0, 28.0);
series1.add(22.0, 29.0);
series1.add(23.0, 33.0);

XYSeries series2 = new XYSeries("Second");
series2.add(9.0, 15.0);
series2.add(10.0, 16.0);
series2.add(12.0, 17.0);
series2.add(13.0, 18.0);
series2.add(15.0, 19.0);
series2.add(16.0, 20.0);
series2.add(17.0, 21.0);
series2.add(19.0, 22.0);
series2.add(20.0, 23.0);
series2.add(21.0, 24.0);
series2.add(23.0, 25.0);
series2.add(24.0, 26.0);
series2.add(25.0, 27.0);
series2.add(27.0, 29.0);

XYSeries series3 = new XYSeries("Third");
series3.add(6.0, 5.0);
series3.add(7.0, 4.0);
series3.add(9.0, 3.0);
series3.add(10.0, 4.0);
series3.add(11.0, 6.0);
series3.add(12.0, 7.0);
series3.add(13.0, 8.0);
series3.add(14.0, 9.0);
series3.add(15.0, 10.0);
series3.add(16.0, 11.0);
series3.add(17.0, 12.0);
series3.add(18.0, 9.0);
series3.add(19.0, 11.0);

قمنا بتمثيل ثلاثة سلاسل XYSeries كل واحدة فيها نقاط الاحداثيات المختلفة ليتم رسمها وهي على التوالي First, Second and Third

عن طريق الصنف XYSeriesCollection نقوم بعمل كائن نسميه xyDataset هذا الكائن سيتضمن بيانات النقاط الاحداثية للرسوم النقطية الثلاثة

2- create a chart

//create a chart...
JFreeChart chart = ChartFactory.createScatterPlot( 
"MultiXYScatter Chart", // title 
"X", "Y", // axis labels 
xyDataset, // dataset 
PlotOrientation.VERTICAL, 
true, // legend? yes 
true, // tooltips? yes 
false // URLs? no 
);

لرسم مخططات النقط المبعثرة التي تعتمد مبدأ الـ XY وفق الأمر createScatterPlot

ننتقل مباشرة الى الخطوة الاهم وهي التي أخذت مني وقت في التحليل والاستبيان والتجربة لتحديد ألوان واحجام النقاط التي سيتم رسمها

4- Extras and the modifications وهنا سنقوم ببعض الشروحات

أولاً: تحديد لون الخلفية الخارجية

//1- set colors for External background  
chart.setBackgroundPaint(Color.lightGray);

ثانياً: تحديد لون الخلفية الداخلية

//2- set colors for Internal background
XYPlot plot = chart.getXYPlot();

ثالثاً: تثبيت وتحديد لون الخطوط داخل الخلفية الداخلية حيث يتم الرسم

       //3- set colors for grid lines
     plot.setRangeGridlinePaint(Color.black); // Horizontal grid lines    
       plot.setDomainGridlinePaint(Color.black); // Vertical grid lines

رابعاً: تغيير ألوان الخطوط التي سيتم رسمها

	//4 - set colors for renderer
    XYDotRenderer renderer = new XYDotRenderer();
	renderer.setSeriesPaint(0, Color.green);// color of first set of points
        renderer.setSeriesPaint(1, Color.black);// color of second set of points
	renderer.setSeriesPaint(2, Color.blue); // color of third set of points
	plot.setRenderer(renderer);

خامساً: تحديد حجم كل نقطة من حيث العرض والطول

	 //5- Set the width and Height 
	renderer.setDotWidth(5); // Determine the Width of the each Point
       renderer.setDotHeight(5); // Determine the Height of the each Point
plot.setBackgroundPaint(Color.white);

الكود النهائي

import java.awt.Color;

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.DefaultCategoryItemRenderer;
import org.jfree.chart.renderer.xy.DefaultXYItemRenderer;
import org.jfree.chart.renderer.xy.XYDotRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYSeries; 
import org.jfree.data.xy.XYSeriesCollection; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 

public class MultiXYScatterChart extends ApplicationFrame { 

public MultiXYScatterChart(String title) { 

super(title); 

//create a dataset...
XYSeries series1 = new XYSeries("First");
series1.add(4.0, 12.0);
series1.add(7.0, 13.0);
series1.add(8.0, 17.0);
series1.add(11.0, 18.0);
series1.add(13.0, 20.0);
series1.add(14.0, 21.0);
series1.add(15.0, 24.0);
series1.add(17.0, 26.0);
series1.add(18.0, 27.0);
series1.add(20.0, 30.0);
series1.add(21.0, 28.0);
series1.add(22.0, 29.0);
series1.add(23.0, 33.0);

XYSeries series2 = new XYSeries("Second");
series2.add(9.0, 15.0);
series2.add(10.0, 16.0);
series2.add(12.0, 17.0);
series2.add(13.0, 18.0);
series2.add(15.0, 19.0);
series2.add(16.0, 20.0);
series2.add(17.0, 21.0);
series2.add(19.0, 22.0);
series2.add(20.0, 23.0);
series2.add(21.0, 24.0);
series2.add(23.0, 25.0);
series2.add(24.0, 26.0);
series2.add(25.0, 27.0);
series2.add(27.0, 29.0);

XYSeries series3 = new XYSeries("Third");
series3.add(6.0, 5.0);
series3.add(7.0, 4.0);
series3.add(9.0, 3.0);
series3.add(10.0, 4.0);
series3.add(11.0, 6.0);
series3.add(12.0, 7.0);
series3.add(13.0, 8.0);
series3.add(14.0, 9.0);
series3.add(15.0, 10.0);
series3.add(16.0, 11.0);
series3.add(17.0, 12.0);
series3.add(18.0, 9.0);
series3.add(19.0, 11.0);

XYSeriesCollection xyDataset = new XYSeriesCollection();
xyDataset.addSeries(series1);
xyDataset.addSeries(series2);
xyDataset.addSeries(series3);

//create a chart...
JFreeChart chart = ChartFactory.createScatterPlot( 
"MultiXYScatter Chart", // title 
"X", "Y", // axis labels 
xyDataset, // dataset 
PlotOrientation.VERTICAL, 
true, // legend? yes 
true, // tooltips? yes 
false // URLs? no 
); 

//add the chart to a panel...
ChartPanel chartPanel = new ChartPanel(chart); 
chartPanel.setPreferredSize(new java.awt.Dimension(500, 370)); 
setContentPane(chartPanel); 


//Extras and the modifications...

//1- set colors for External background  
chart.setBackgroundPaint(Color.lightGray);

//2- set colors for Internal background
XYPlot plot = chart.getXYPlot();
plot.setBackgroundPaint(Color.white);

//3- set colors for grid lines
	plot.setRangeGridlinePaint(Color.black); // Horizontal grid lines
    plot.setDomainGridlinePaint(Color.black); // Vertical grid lines

	//4 - set colors for renderer
    XYDotRenderer renderer = new XYDotRenderer();
	renderer.setSeriesPaint(0, Color.green);// color of first set of points
	renderer.setSeriesPaint(1, Color.black);// color of second set of points
	renderer.setSeriesPaint(2, Color.blue); // color of third set of points
	plot.setRenderer(renderer);

	 //5- Set the width and Height 
	renderer.setDotWidth(5); // Determine the Width of the each Point
	renderer.setDotHeight(5); // Determine the Height of the each Point

//6- Change the auto tick unit selection to integer units only...
 NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
 rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

} 



public static void main(String[] args) { 
MultiXYScatterChart demo = new MultiXYScatterChart("Multi XY Scatter Chart"); 
demo.pack(); 
RefineryUtilities.centerFrameOnScreen(demo); 
demo.setVisible(true); 
} 

}

الشكل الناتج عن عن هذا المثال

post-152477-057816800 1355541588_thumb.j

المرفقات
Multi XY Scatter Chart.jpg

تم تعديل هذه المشاركة بواسطة vector_ever في 15 ديسمبر 2012 في 16:37

2

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#73

كنت سألتك في هذا الموضوع السؤال التالي :

عملت JFram لجمع بعض البيانات ثم إرسالها لفئة الرسم البياني وعند ظهور الرسم البياني في نافذة منفصلة وإغلاقه يتم إغلاق الـ JFram الرئيسي وأنا لاأريده يغلق , فماهو الحل ؟

وقد وجدت الحل , وهو : أن نجعل جميع الأمثلة ترث JFrame بدلًا من ApplicationFrame وتنتهي المشكلة .

وعندي إقتراح بالنسبة للموضوع ككل وهو أن تقوم بعد إنهاء جميع الدروس بجمعها في ملف pdf ونشرها ليسهل حملها لمن أرادها .

1
#74

+1

مشكور :lol:

556891961.gif

I am learning from you

it is the programmer eye

#75
هدف الشمالي كتب:

كنت سألتك في هذا الموضوع السؤال التالي :

عملت JFram لجمع بعض البيانات ثم إرسالها لفئة الرسم البياني وعند ظهور الرسم البياني في نافذة منفصلة وإغلاقه يتم إغلاق الـ JFram الرئيسي وأنا لاأريده يغلق , فماهو الحل ؟

وقد وجدت الحل , وهو : أن نجعل جميع الأمثلة ترث JFrame بدلًا من ApplicationFrame وتنتهي المشكلة .

وعندي إقتراح بالنسبة للموضوع ككل وهو أن تقوم بعد إنهاء جميع الدروس بجمعها في ملف pdf ونشرها ليسهل حملها لمن أرادها .

فعلا أخي هدف الشمالي انا عند كتابتي لكود الـ JFram اجعله يرث من الـ JFrame ولكن سابقا لم انتبه على هذا في مثالك السابق ويمكن بسبب انك كنت قد كتبته بواسطه النت بينز فلذلك تمحور اهتمامي على الكود الرئيسي

فشكرا للتنويه

بالنسبة لتجميع الدروس فوالله النية موجود وقائمة لكن والله ما ينقصني حتى الآن هو الوقت وعدا ذلك ما زالت هناك بعض الشروحات التي اريد اضافتها وما زلت اواجه صعوبات في كتابة الكود الخاص بها

على كل حال الى ان يتم ذلك يبقى هذا المكان هو المرجع لكل الدروس حاليا

وشكرا

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…