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

كيفية عمل رسم بياني بالجافا

مغلق
بدأه javaferas في 2 يونيو 2007 · 2 رد · 3,854 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لعمل رسوم بيانية بالجافا ، ينصح باستخدام هذه المكتبة JFreeChart

و هي أداة جميلة جدا تحتوي أغلب الرسوم البيانية

و هذه الرسوم البيانية التي تؤديها

pie charts (2D and 3D)

* bar charts (regular and stacked, with an optional 3D effect)

* line and area charts

* scatter plots and bubble charts

* time series, high/low/open/close charts and candle stick charts

* combination charts

* Pareto charts

* Gantt charts

* wind plots, meter charts and symbol charts

* wafer map charts

و هذه مواقع مختصة بهذا الموضوع

http://www.jfree.org/jfreechart/

http://www.javaworld.com/javaworld/jw-12-2...rceprofile.html

http://www.javaresources.biz/jfreechart_tutorial.jsp

و هذا مثال لعمل رسم بياني JFreeChart

		 

import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.*;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.*;

public class YieldCurveDemo extends ApplicationFrame
{
	/* member class not found */
	class CustomDateAxis {}


	public YieldCurveDemo(String s)
	{
		super(s);
		JPanel jpanel = createDemoPanel();
		jpanel.setPreferredSize(new Dimension(500, 270));
		setContentPane(jpanel);
	}

	private static JFreeChart createChart(XYDataset xydataset)
	{
		JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("US$ Treasury Yields", "Date", "Yield", xydataset, false, true, false);
		jfreechart.setBackgroundPaint(Color.white);
		XYPlot xyplot = (XYPlot)jfreechart.getPlot();
		GregorianCalendar gregoriancalendar = new GregorianCalendar(2005, 10, 15);
	   // xyplot.setDomainAxis(new CustomDateAxis("Date", gregoriancalendar.getTime()));
		xyplot.setBackgroundPaint(Color.lightGray);
		xyplot.setDomainGridlinePaint(Color.white);
		xyplot.setRangeGridlinePaint(Color.white);
		xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
		xyplot.setDomainCrosshairVisible(true);
		xyplot.setRangeCrosshairVisible(true);
		org.jfree.chart.renderer.xy.XYItemRenderer xyitemrenderer = xyplot.getRenderer();
		if(xyitemrenderer instanceof XYLineAndShapeRenderer)
		{
			XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)xyitemrenderer;
			xylineandshaperenderer.setBaseShapesVisible(true);
			xylineandshaperenderer.setBaseShapesFilled(true);
		}
		DateAxis dateaxis = (DateAxis)xyplot.getDomainAxis();
		dateaxis.setDateFormatOverride(new SimpleDateFormat("MMM-yyyy"));
		jfreechart.addSubtitle(new TextTitle("November 2005"));
		TextTitle texttitle = new TextTitle("Source: http://www.econstats.com/r/r_am1.htm");
		texttitle.setFont(new Font("Dialog", 0, 9));
		texttitle.setPosition(RectangleEdge.BOTTOM);
		texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);
		jfreechart.addSubtitle(texttitle);
		return jfreechart;
	}

	private static XYDataset createDataset()
	{
		TimeSeries timeseries = new TimeSeries("US$ Treasury Yields");
		Day day = new Day(1, 12, 2005);
		Day day1 = new Day(1, 2, 2006);
		Day day2 = new Day(1, 5, 2006);
		Day day3 = new Day(1, 12, 2006);
		Day day4 = new Day(1, 12, 2007);
		Day day5 = new Day(1, 12, 2008);
		Day day6 = new Day(1, 12, 2010);
		Day day7 = new Day(1, 12, 2012);
		Day day8 = new Day(1, 12, 2015);
		Day day9 = new Day(1, 12, 2025);
		timeseries.add(day, 3.79D);
		timeseries.add(day1, 3.9950000000000001D);
		timeseries.add(day2, 4.2599999999999998D);
		timeseries.add(day3, 4.3224999999999998D);
		timeseries.add(day4, 4.4474999999999998D);
		timeseries.add(day5, 4.4749999999999996D);
		timeseries.add(day6, 4.5199999999999996D);
		timeseries.add(day7, 4.5599999999999996D);
		timeseries.add(day8, 4.625D);
		timeseries.add(day9, 4.9050000000000002D);
		TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
		timeseriescollection.addSeries(timeseries);
		return timeseriescollection;
	}

	public static JPanel createDemoPanel()
	{
		JFreeChart jfreechart = createChart(createDataset());
		return new ChartPanel(jfreechart);
	}

	public static void main(String args[])
	{
		YieldCurveDemo yieldcurvedemo = new YieldCurveDemo("Yield Curve Demo");
		yieldcurvedemo.pack();
		RefineryUtilities.centerFrameOnScreen(yieldcurvedemo);
		yieldcurvedemo.setVisible(true);
	}
}

و انا مستعد للإفادة أي شخص بهذا الموضع

#2

جزاك الله خيرا، كم أنا أحوج لمثل هذه الأداه اليومين دول

#3

شكرا اخي العزيز javaferas انا كنت ابحث عن هذا الموضوع

ان شاء الله اجرب الكود واكتبلك في حالة وجود اي استفسار جزاك الله خير

دمتم بخير

UJH

خليك فاكرني

هذا الموضوع مغلق.

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