Tracker, AreaChart and Heatmap
urm3l wrote at 2013-04-04 09:08:
I just started out using OxyPlot and it works very well but it brought up some questions. Maybe you could help.
1) Is it possible to have the tracker right above the mouse and not on the closest point? That would probably smooth tracking through most plots.
2) Is it possible to have a little dot follow the line where the tracker would be and then on click show the tracker? So that the user always knows where the mouse is tracking the plot.
3) Is it possible to stop the lower plot of an areachart from being tracked? Its just a lower boundary in my case and not used for any data.
4) Is there a way to get a line chart with multiple colors like the heatmap. I would like to set thresholds and then have the line colored to show different heights right in the plot color.
Thanks in advance
Point Annotation
RezaShirazian wrote at 2014-05-22 19:08:
I tried using rectangle annotation but the rectangle resizes as the user zooms in and out. I tried image annotation with a small rectangle, however that doesn't work since its color is static and cannot be changed during run time.
Is there an easy way of adding point annotation on a plot?
objo wrote at 2014-05-23 08:14:
EllipseAnnotation
! To draw a fixed size point, the width/height of the ellipse should not be transformed.RezaShirazian wrote at 2014-05-23 17:58:
Exception when touching tablet
with the following callstack
Oxy.Plot.Wpf.dll!OxyPlot.Wpf.PlotView.OnManipulationStarted()
PresentationCore.dll!System.Windows.UIElement.OnManipulationStartedThunk()
...
On a PC, my application works fine but there I did not have Touchscreen Events.
My application was designed for Desktop and does not use excplicitally Touch Events but if so, it should not Crash.
Regards,
Georg
Problemsignatur:
Problemereignisname: CLR20r3
Problemsignatur 01: BDCViewer.exe
Problemsignatur 02: 1.1.0.0
Problemsignatur 03: 53e4a545
Problemsignatur 04: OxyPlot.Wpf
Problemsignatur 05: 2014.1.319.1
Problemsignatur 06: 53b1ce0a
Problemsignatur 07: 246
Problemsignatur 08: 29
Problemsignatur 09: System.NullReferenceException
Betriebsystemversion: 6.3.9600.2.0.0.768.101
Gebietsschema-ID: 1031
Zusatzinformation 1: 5861
Zusatzinformation 2: 5861822e1919d7c014bbb064c64908b2
Zusatzinformation 3: 4754
Zusatzinformation 4: 47547fafc9a3073a5bbe8e69322a8db5
I think, it is here:
public partial class PlotView
{
/// <summary>
/// Called when the <see cref="E:System.Windows.UIElement.ManipulationStarted" /> event occurs.
/// </summary>
/// <param name="e">The data for the event.</param>
protected override void OnManipulationStarted(ManipulationStartedEventArgs e)
{
base.OnManipulationStarted(e);
if (e.Handled)
{
return;
}
e.Handled = this.Controller.HandleTouchStarted(this, e.ToTouchEventArgs(this));
}
Wrong offset from y-axis
RobinSoenen wrote at 2014-05-21 17:38:
I'm trying to use oxyplot to render a chart with lineseries.
I have added multiple lineseries to the chart but I seem to be having problems with the rendering.
In the added image the orange line should only begin after a certain time (not when the blue line starts).
points are being added in the following way:
lineSeries1.Points.Add(new DataPoint(Offset, double.Parse(valueString)));
Is there a reason for this behavior? https://onedrive.live.com/redir?resid=48B06587F86038FF!671&authkey=!AJcenx-Usfl9MAE&ithint=folder%2c.png
thanks for the help,
kr,
Robin
Lineseries.Color bug, help
OverDriver wrote at 2014-07-24 03:20:
I wanna keep the color patter of creating the new line while getting the color of the line plotted. But this: OxyPlot.WindowsForms.ConverterExtensions.ToColor(tmpLine.Color); code will always return same color value back.
Thanks a lot!
foreach (Plot plotItem in _plots)
{
var tmpLine = new LineSeries();
tmpLine.Points.AddRange(plotItem._resampledPoints);
tmpLine.StrokeThickness = plotItem._thickness;
tmpLine.LineStyle = plotItem._style;
if(_showLineTitle)
tmpLine.Title = plotItem._name;
if (!(plotItem._color.Equals(System.Drawing.Color.White)))
tmpLine.Color = plotItem._color.ToOxyColor();
plotItem._color = OxyPlot.WindowsForms.ConverterExtensions.ToColor(tmpLine.Color);
model.Series.Add(tmpLine);
}
Slxe wrote at 2014-07-24 15:11:
tmpLine.Color.ToColor();
OverDriver wrote at 2014-07-24 16:59:
foreach (Plot plotItem in _plots)
{
var tmpLine = new LineSeries();
tmpLine.Points.AddRange(plotItem._resampledPoints);
tmpLine.StrokeThickness = plotItem._thickness;
tmpLine.LineStyle = plotItem._style;
if (_showLineTitle)
tmpLine.Title = plotItem._name;
if (!(plotItem._color.Equals(System.Drawing.Color.White)))
tmpLine.Color = plotItem._color.ToOxyColor();
plotItem._color = tmpLine.Color.ToColor();
model.Series.Add(tmpLine);
}
Thanks so much!Slxe wrote at 2014-07-25 16:37:
OverDriver wrote at 2014-07-26 00:17:
You're always so helpful :)
Real time data and panning problem
Greg767 wrote at 2014-07-26 15:45:
I am using the Xamarin iOS component and have two plots that get real time data and I have two small issues.
- When I synchronize the vertical axis of the two plots and when I move the Y axis on either plot, data just disappears from the other plot. When I synchronize the horizontal axis everything is ok.
Synchro is done as per the WpfExamples (coupled axes demo). Is it a bug or vertical synchro is different from horizontal one?
- The real-time data auto-scrolls nicely the X and Y axis so that the last point is always visible, but when I pan the plot by touch and I let it go, auto-scrolling stops. How would I re-trigger auto-scrolling?
Greg
Greg767 wrote at 2014-07-26 16:12:
I am calling Reset() on both axis 2 seconds after panning stopped.
Question 1 is still up though!
Thanks!
Greg767 wrote at 2014-07-27 17:30:
Slxe wrote at 2014-07-28 16:38:
As for syncing multiple axes when panning or zooming, I posted how I'm handling it here. Might help you figure out how to handle it for your issue.
Greg767 wrote at 2014-07-28 20:29:
I will do as per your post and what you said here!
Thanks again!
Last axis label of line graph is missing.
krishnaramuu wrote at 2014-04-27 08:10:
objo wrote at 2014-04-28 08:50:
Source\Examples\ExampleLibrary\Issues\OpenIssues.cs
, this will make it possible to debug on all platforms!)DateTimeAxis with IntervalType == DateTimeIntervalType.Minutes
swiszcz wrote at 2013-05-06 10:33:
I want to display measurement data, where measurements were made every full minute (60 seconds), so I'm using DateTimeAxis with IntervalType == DateTimeIntervalType.Minutes on X axis. I'm using DateTimeAxis.ToDouble() to calculate x-coordinate and I obtain correct point series.
However, I was expecting ticks on the X axis to appear every full minute, but the actual distance between ticks is one minute +- a few seconds (see Example screen capture.).
Is there a way to have tick's distance equal to exactly 1 minute?
Regards,
Maciek
public static PlotModel DateTimeAxisExample()
{
var plotModel1 = new PlotModel();
var linearAxis1 = new LinearAxis();
linearAxis1.MinorGridlineStyle = LineStyle.Dot;
plotModel1.Axes.Add(linearAxis1);
var dateTimeAxis1 = new DateTimeAxis();
dateTimeAxis1.IntervalType = DateTimeIntervalType.Minutes;
dateTimeAxis1.EndPosition = 0;
dateTimeAxis1.StartPosition = 1;
dateTimeAxis1.StringFormat = "hh:mm:ss";
plotModel1.Axes.Add(dateTimeAxis1);
return plotModel1;
}
objo wrote at 2013-05-06 11:10:
DateTimeAxis
. Maybe this is related to double precision accuracy. I am adding a new issue:
https://oxyplot.codeplex.com/workitem/10045
swiszcz wrote at 2013-05-07 14:58:
I've found that, in this case, in class: OxyPlot.Axes.Axis, in method: protected static IList<double> CreateTickValues(double min, double max, double step). commenting line: x = x.RemoveNoise(); solves a problem.
Good code, and a good library, by the way.
Thanks!
objo wrote at 2013-06-08 11:57:
raphay wrote at 2013-07-04 15:31:
I have another similar problem, sometimes at the minute or seconde scale, some major ticks doesn't appears
I use Nugget, so i wonder if the solution proposed by swiszcz is available in the lastest version.
Thank you for your answer, your work is awesome,
Regards
swiszcz wrote at 2013-07-04 15:45:
Although commenting line: x = x.RemoveNoise(); solves a my problem, i have no idea how does it influence the rest of a code (and it may as it is in a base class). So I just made a private fork of OxyPlot.
Best regards
RefreshPlot slows down WPF
user78483 wrote at 2013-10-04 12:52:
I implemented the taskdemo from the source. There the maxpoint values was set to 20000. If I increase that number to 50000, the wpf application is not useable anymore once the RefreshPlot is called from within an update task (for about 50000 points).
Is there a way to solve this or is there a maximum of points you should draw within the plot?
Cheers mike
everytimer wrote at 2013-10-04 16:10:
user78483 wrote at 2013-10-04 17:34:
By drawing dashed lines instead of filled ones I could gain performance. Is this right?
What about this "BalancedLineDrawingThicknessLimit" property?
A little idea how to use it would be great.
Thanks in advance,
mike
objo wrote at 2013-10-06 19:35:
I think we can do more of the updates in a background thread to improve responsiveness on the UI thread, but I have not tested this yet.
See also performance tips on https://oxyplot.codeplex.com/wikipage?title=Performance
willmoore88 wrote at 2013-10-25 14:53:
We did some recent improvements to the performance on WPF, but WPF's rendering core is still a bottleneck.Currently, the Update(bool updateData) method in OxyPlot/PlotModel/PlotModel.cs, is all happening on the UI thread? I am using OxyPlot in WPF and after calling InvalidatePlot, at which point I am running in another thread, as soon as Invoke() with InvalidateArrange (or something like that) gets called, its moves back onto the UI thread for the actual update of the PlotModel. Have you any code which does this on a background thread? When I try and do it i'm running into errors because the plot object belongs to another thread.
I think we can do more of the updates in a background thread to improve responsiveness on the UI thread, but I have not tested this yet.
See also performance tips on https://oxyplot.codeplex.com/wikipage?title=Performance
This is really affecting the performance of my app and am going to have to fundamentally change the way I draw my graphs soon if I can not solve the issue. I already am using OxyPlot purely for the Axis and rendering the plot contents myself and using the Annotation series to show the bitmap I create.
willmoore88 wrote at 2013-10-25 16:36:
willmoore88 wrote at 2013-10-28 10:18:
willmoore88 wrote at 2013-11-11 10:28:
willmoore88 wrote at 2013-11-11 17:06:
Do you think implementing a 'double canvas' where the entire canvas is drawn and then sent to the screen, rather than each point in turn? This would sort of be like a Windows Forms 'double buffer'?
objo wrote at 2013-11-11 19:34:
Servicio de atención al cliente por UserEcho