PDA

View Full Version : سوال: تغییر نقطه شروع نمودار



hamidhws
یک شنبه 09 آذر 1393, 22:26 عصر
سلام
من وقتی یه نمودار میکشم و مثلا نقطه اول رو 2,3 میدم خودش به صورت پیشفرض یه خط از نقطه 0,0 به 2,3 میکشه که من نمیخوام بکشه! چیکار باید کنم؟
با تشکر

elahe1393
دوشنبه 10 آذر 1393, 08:09 صبح
با کد زیر میتونید اینکار رو انجام بدید

Graphic.DrawLine(new Pen(Brushes.White, 1), xStart, yStart, xEnd, yEnd);

به جای start ، x و y نقطه شروع و به جای end ، x و y نقطه پایان

hamidhws
دوشنبه 10 آذر 1393, 09:31 صبح
با کد زیر میتونید اینکار رو انجام بدید

Graphic.DrawLine(new Pen(Brushes.White, 1), xStart, yStart, xEnd, yEnd);

به جای start ، x و y نقطه شروع و به جای end ، x و y نقطه پایان
بی زحمت یکم بیشتر توضیح میدید لطفا؟
من از wpf chart استفاده میکنم و نمودارمو با این کد میکشم
((LineSeries)mcChart.Series[0]).ItemsSource = new KeyValuePair<double, double>[]{
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[0]),Convert.ToDouble(Class.Report.Report.Error[0])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[1]),Convert.ToDouble(Class.Report.Report.Error[1])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[2]),Convert.ToDouble(Class.Report.Report.Error[2])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[3]),Convert.ToDouble(Class.Report.Report.Error[3])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[4]),Convert.ToDouble(Class.Report.Report.Error[4])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[5]),Convert.ToDouble(Class.Report.Report.Error[5])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[6]),Convert.ToDouble(Class.Report.Report.Error[6])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[7]),Convert.ToDouble(Class.Report.Report.Error[7])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[8]),Convert.ToDouble(Class.Report.Report.Error[8])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[9]),Convert.ToDouble(Class.Report.Report.Error[9])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[10]),Convert.ToDouble(Class.Report.Report.Error[10])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[11]),Convert.ToDouble(Class.Report.Report.Error[11])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[12]),Convert.ToDouble(Class.Report.Report.Error[12])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[13]),Convert.ToDouble(Class.Report.Report.Error[13])),
new KeyValuePair<double, double>(Convert.ToDouble(Class.Report.Report.Flowrate[14]),Convert.ToDouble(Class.Report.Report.Error[14]))};

همه چی درسته فقط میخوام پوینت اولی از دیتای اولی شروع بشه! مشکلم اینه خودش بصورت پیشفرض از نقطه 0و0 یه خط به پوینت اولم میکشه
این سوالو توی تالار wpf گذاشتم جوابی نگرفتم اینجا گذاشتم . هرچی سرچ میکنم هیچی پیدا نمیکنم واقعا معضلی شده برام :( لطفا کمک کنید ممنون میشم واقعا

elahe1393
دوشنبه 10 آذر 1393, 13:06 عصر
من فکر کردم نمودارو گرافیکی خودتون میکشید
خوب زیاد آشنایی ندارم ولی فکر کنم طبق یه for یا foreach بیاید نقاط تون رو به سری اضافه کنید احتمالا از همون نقطه اولی که خودتون تعیین کردید رسم آغاز میشه
chart.Series[0].Points.AddXY(x,y);
حتی میتونید سری تون رو به دو ستون جدولتون که مقادیر x و y رو مشخص می کنند وصل کتید
OleDbConnection ocn = new OleDbConnection();
OleDbCommand ocm = new OleDbCommand();

ocn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\اسم دیتابیس.accdb";

ocm.Connection = ocn;
ocm.CommandText = "SELECT * FROM نام جدول";
OleDbDataAdapter adapter = new OleDbDataAdapter(ocm);
System.Data.DataSet ds = new System.Data.DataSet();
adapter.Fill(ds);
chart1.Series[0].Points.DataBind(ds.Tables[0].Select(),"اسم ستون x","اسم ستون y","");