matthew.frazier Posted February 17, 2011 Report Share Posted February 17, 2011 I'm looking for just a simple XYZ scatter example. I see plenty of examples for contour but I'm looking for just a simple xyz scatter. When I attemp to create one myself I get an error stating that "The current chart gallery settings is inconsistent with the number of series in your data. Some gallery types require a specific number of series." ScatterXYZ x = new ScatterXYZ(); chart1.View3D.IsEnabled = true; chart1.AllSeries.GalleryAttributes = x; //if i remove everything below then i get exactly what i want with the default data. //i just want to send my own xyz values and get a simple xyz scatter plot chart1.Series.Clear(); chart1.Series.Add(new SeriesAttributes()); chart1.Series[0].ItemsSource = GetData(); Quote Link to comment Share on other sites More sharing options...
JuanC Posted February 17, 2011 Report Share Posted February 17, 2011 ScatterXYZ needs 2 series. The first series should have X and Y values while the second series Y data will be used as the Z values, e.g. List<XYZData> xyzData = new List<XYZData>(); xyzData.Add(new XYZData(1,1,2)); ... chart1.Series.Clear(); chart1.Series.Add(new SeriesAttributes() { BindingPath = "Y", BindingPathX = "X" }); chart1.Series.Add(new SeriesAttributes() { BindingPath = "Z" }); chart1.ItemsSource = xyzData; Note that we are assigning the data on a per-chart basis as you will probably have your XYZ information in a single list. In the sample I am assuming the XYZData class has 3 numeric properties called X, Y and Z. Although you could pass the data on a per series basis you will still need to "combine" X and Y in a single list so it is not possible to pass 3 double arrays. If you need multiple sets of XYZ scatters, i.e. you have 2 lists of XYZ data you need to pass then you would do something like this chart1.Series.Clear(); chart1.Series.Add(new SeriesAttributes() { BindingPath = "Y", BindingPathX = "X", ItemsSource=xyzData1 }); chart1.Series.Add(new SeriesAttributes() { BindingPath = "Z", ItemsSource=xyzData1 }); chart1.Series.Add(new SeriesAttributes() { BindingPath = "Y", BindingPathX = "X", ItemsSource=xyzData2 }); chart1.Series.Add(new SeriesAttributes() { BindingPath = "Z", ItemsSource=xyzData2 }); JuanC Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.