第一篇文章在这里发表了1000次,真的很喜欢其他成员的贡献。 我知道很多人会翻白眼,但我不会有太多的开始。 我对c#,MS C的基础以及更多的Microchip C和ASM有一定的了解。 试图为WinCE6制作一个应用程序作为家庭自动化主控制器,我的大多数模块都工作,没有时间将各个部分组合在一起,拥有一个50列和1440行的SQLCE数据库,即50个设备和1440分钟1天,所有对照组将每天重复其功能。数据库当前填充了随机数据进行测试,现在我想创建一个可视化控件来创建数据,无法找到CE版本的MSChart控件,所以我决定创建一个x86应用程序,我可以创建我的数据。我的困难主要来自经验不足,我可以添加或插入系列,但他们不会按照我想要的顺序插入。
在这个例子中,你可以看到我想要达到的目标; 1没有数据点所有1440记录将具有相同的值。 2加分为200,400,600,800,1000,1100。 3在Y上从400移动点从270到350。 4个删除点在200,400,600,800。
对所有建议开放。 无法上传图片,请点击链接。 谢谢
imgur.com/zsBla.jpg
imgur.com/y4wsn.jpg
imgur.com/Yo4XH.jpg
imgur.com/7FgHn.jpg
private void chart1_MouseClick(object sender, MouseEventArgs e)
{
var pos = e.Location;
clickPosition = pos;
var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.PlottingArea);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.PlottingArea)
{
var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
//tooltip.Show("x=" + xVal + ", y=" + yVal, this.chart1, e.Location.X, e.Location.Y - 15);
tk++;
chart1.Series[0].Points.InsertXY (0,tk,yVal);
//chart1.Series[0].Sort(PointSortOrder.Ascending);//.Points.InsertXY(0,xVal, yVal);
Tick.Text = tk.ToString();
}
}
}
答案 0 :(得分:0)
我整理了一个快速演示,我希望这将有助于解决您的问题:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Chart1.Series(0).ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line
Chart1.Series(0).Points.AddXY(0, 10)
Chart1.Series(0).Points.AddXY(1440, 100)
Chart1.Series(0).Points.AddXY(600, 80)
Chart2.Series(0).ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line
Chart2.Series(0).Points.AddXY(0, 10)
Chart2.Series(0).Points.AddXY(1440, 100)
Chart2.Series(0).Points.AddXY(600, 80)
Chart1.DataManipulator.Sort(System.Windows.Forms.DataVisualization.Charting.PointSortOrder.Descending, Chart1.Series(0))
End Sub
给出了这个(左:排序,右:未排序)