Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 19 11:07
    MariusMichelPrimes opened #1889
  • May 19 06:57
    softminer opened #1888
  • May 13 17:13
    Mykullski commented #1843
  • May 09 20:19
    VisualMelon commented #1886
  • May 09 20:10
    FabianNitsche commented #1886
  • May 09 20:01
    FabianNitsche synchronize #1886
  • May 09 19:32
    FabianNitsche commented #1886
  • May 09 19:32
    FabianNitsche synchronize #1886
  • May 09 18:53
    FabianNitsche commented #1886
  • May 09 18:17
    VisualMelon commented #1886
  • May 09 18:16
    VisualMelon commented #1886
  • May 09 17:50
    FabianNitsche commented #1886
  • May 09 17:40
    FabianNitsche commented #1886
  • May 09 16:33
    VisualMelon commented #1886
  • May 09 15:06
    VisualMelon commented #1886
  • May 09 15:04
    VisualMelon commented #1886
  • May 09 15:00
    VisualMelon commented #1886
  • May 09 13:20
    fue-medatixx opened #1887
  • May 09 11:39
    VisualMelon commented #1886
  • May 09 11:37
    VisualMelon commented #1886
VisualMelon
@VisualMelon
But I'm not sure what your axis setup is there
VisualMelon
@VisualMelon
I suspect what you want will be frustratingly non-trivial, because OxyPlot axes' work over a data-range (min/max), rather than an offset and scale
Adam Buchanan
@RejectKid
gotcha. i think technically this is a 2d plot, fakely made polar. as im not seeing there's a polar setting hmmmmm
VisualMelon
@VisualMelon
Yeah, OxyPlot doesn't have any support for 3D plots, so was a surprise to see
Adam Buchanan
@RejectKid
yeah we sorta forced it to be 3d
lol
or at least give off the appearance of that
VisualMelon
@VisualMelon
It does support 2D polar plots, and you could - if you went crazy enough - define a set of 3D axes and 3D series, but it wouldn't have any of the fun of a proper 3D plotting library
Adam Buchanan
@RejectKid
well as a tibit of info, if i set it to Cartesian. it technically scales-ish. goes small just fine, but as you go back out/expand it statys stuck lol
as a small newb in this area, is there a good 3d plotting library out there for .NET/wpf?
VisualMelon
@VisualMelon
Slaving the axes together is probably the easiest way of doing this; let me try to fine some old example code I have for this...
There are good plotting libs, but not any good free ones of which i know
(e.g. ILNumerics is a commercial offering that if nothing else looks pretty, though plot interaction isn't what you'd expect from e.g. MATLAB)
Adam Buchanan
@RejectKid
ah gotcha. yeah i think thats the way imma scale this. fit it in a border and keep it square
I super appreciate the help!
VisualMelon
@VisualMelon
There's also plotly, which is a wrapper over some JS stuff I think; I know there are F# bindings (https://plotly.com/fsharp/3d-charts/) but never used them so can't speak to their quality or applicability and I don't know if there are C# friendly bindings
Adam Buchanan
@RejectKid
wooooah those are awesome looking lol
VisualMelon
@VisualMelon
If you do need axes to talk to each other, there is some example code in this Issue: https://github.com/oxyplot/oxyplot/issues/1629#issuecomment-662555341
You could, for instance, force both axes to assume the scale of the smaller axis (within some epsilon error)
You have to be careful when slaving them together, because you can get infinite loops
Adam Buchanan
@RejectKid
gotcha. awesome possum thanks so very much!!
Alexander Van Atta
@alex339_gitlab
Was the Plot XAML control removed in a recent version? Is PlotView the only support approach now?
VisualMelon
@VisualMelon
@alex339_gitlab it was moved to oxyplot-contrib
It won't be as well supported, but hopefully it'll stay up-to-date
zxy309
@zxy309
1649988969(1).jpg
zxy309
@zxy309
Infinite amplification
Alan Rodriguez
@alando1

Hello, I've been working with Oxyplot.Wpf 2.1 and running into roadblocks when attempting to create a vertical bar graph where the horizontal x axis is a DateTimeAxis. It seems only a category can be used for certain bar series.
My plan was to have a bar for each second, since I'm using real-time data. Also, since I will have different types, I would use a stacking functionality. Unfortunately stacking does not seem to be supported for series such as linearBarSeries, RectangleSeries, RectangleBarSeries etc.
I found a comment on github that says this functionality does now exist but I do not see it used with a dateTimeAxis (oxyplot/oxyplot#1172)

I created a stackoverflow question to see if anyone has experienced this similar issue.
So my main question, is there some bar series in OxyPlot that supports a DateTimeAxis and stacking?
Thanks

VisualMelon
@VisualMelon
What you describe is not provided, I'm afraid
The only bar-series that works for non-category axes is LinearBarSeries, and it doesn't support stacking
It could be modified to support stacking, such that rather than providing just the value for each X data point, you provide a list of values, and then render multiple bars accordingly
Alan Rodriguez
@alando1
yes, I really liked the LinearBarSeries, but then the issue becomes when you have a primary series with a larger value than the secondary series, the secondary series becomes occluded by the larger. The only way to see it would be to set the color to use alpha transparency
Alan Rodriguez
@alando1
trilq1402
@trilq1402:matrix.org
[m]
Hello
I have a problem with the oxy:Plot
could you help me with this?
trilq1402
@trilq1402:matrix.org
[m]
Never mind, I have figured out
VisualMelon
@VisualMelon
Yeah, Plot is now in Oyplot-Contrib
Cole Tobin
@colejohnson66
Is there a way to ensure annotations aren't cut off the screen?
I'm using a magic incantation of if (Model.PlotArea.Height - (YAxis.ScreenMax.Y - XAxis.Transform(point.X, point.Y, YAxis).Y) < 50), but this has the issue where, if I add points at ViewModel construction (ie. before a layout pass), PlotArea is (0,0,0,0)
Cole Tobin
@colejohnson66
// if `point` is less than 50px from the top of the chart, shove it down
if (Model.PlotArea.Height - (YAxis.ScreenMax.Y - XAxis.Transform(point.X, point.Y, YAxis).Y) < 50)
{
    // add 10% padding to the top of the Y axis
}
fabraham-plexus
@fabraham-plexus
Hello, is it possible to create a custom legend? I'd like to show average, median, and std dev with every series
Alan Rodriguez
@alando1
Hello all, I'm back again with another question but this time regarding LineSeries. I'm plotting points in a line from real-time video data. The user has the ability to go back to a previous time in the video where there was no data plotted and have that corresponding data plot. However, appending the new values to the line causes the line to continue drawing from the last point regardless of it's x position. I suppose I need to insert the point at the correct position within the DataPoints collection? Also this brings up the point of gaps. Ideally I would have discontinuous lines if there isn't a value associated for a given x, but currently the line will draw to the next position available. What is the most ideal way of handling a line graph with discontinuity that can be populated at various positions. Thanks
Alan Rodriguez
@alando1
also another question, this one seems much simpler and I must be overlooking something... In that same graph, I have a DateTimeAxis (x) and LinearAxis (y). I have configured the LinearAxis to have IsZoomEnabled set to false so when I zoom out of the graph the height doesn't change. I procedurally update the height of the graph when I receive a datapoint whose value is greater than or equal to the current Maximum. I have set breakpoints and seen the graph's Maximum and AbsoluteMaximum set to the new value, I also call InvalidatePlot immediately after. However, even with the graph's Maximum and AbsoluteMaximum updated, it does not change the bounds as I thought, and I am forced to pan up to see exceeded values. Should I be setting Range instead?
VisualMelon
@VisualMelon
yes, you need to insert the points in the right place: line series doesn't sort them
you should be able to have discontinuities if you insert a DataPoint.Invalid entry
if that doesn't work, check the Broken (I think that's what they are called) properties
VisualMelon
@VisualMelon
not sure I understand the second paragraph; you can't modify Range: it is computed from Minimum and Maximum. May be necessary to clear the ViewMinimum and ViewMaximum
Alan Rodriguez
@alando1
@VisualMelon Hey there, sorry I didn't mean Range, I meant MinimumRange and MaximumRange. I didn't seem to find a ViewMinimum or ViewMaximum property on the LinearAxis object but I was able to get the bounds to change by updating MinimumRange, Maximum, and AbsoluteMaximum all together.