C# Zedgraph polyobj are pop up from graph frame - c#

Before Zoom graph
After Zoom in graph
I made some Polyobj on zedgraph but whenever I zoom in graph, these polyobj pop up from it's graph frame. I want these polyobj that gone out of xaxis will disappear when resize xaxis(zoom)
I searched some code, there is "ZOrder = ZedGraph.ZOrder.E_BehindCurves" like these...
but it didnt work any things. I added every order option from A_ to H_behindall
please give me any hint about this situation.

Related

Interactive chart in C# - set cursor by mouse-click

I'm new to C# and windowsforms applications. I'm trying to create a, at least to some extend, interactive chart. As of now I have not found a library or a built-in method to do what I have in mind.
I want to be able to:
Set a cursor when I click in the chart, set a 2nd cursor when I click again.
When 2 cursors are set, I want to be able to move them with the mouse (click to grab).
(If possible side by side with cursor click-placing:
"Zoom the chart by drawing a rectangle in the chart by clicking and moving the mouse".
My intention is to enable zoom as in: MS Chart Control: prevent zoom when clicking)
I'd like to do this to analyze data (see: Cursor setting example.png). With the cursors it should be possible to easily get the values of the two cursor positions (yellow and red lines) and to measure the distance in between (purple line).
Does anyone of you know how to do this with a mouse_click event OR know a chart library to easily do that?
Thanks for your help!
-Phill
Found another solution to my question and posted it as an answer there: How to retrieve the selected range in the .Net WinForms Chart Control?
To add colored cursors I also add 2 dataseries that are yellow and red to the method private void chart1_SelectionRangeChanging(object sender, CursorEventArgs e):
chart1.Series["CursorX1"].Points.AddXY(x1,y1Min);`
chart1.Series["CursorX1"].Points.AddXY(x1,y1Max);
chart1.Series["CursorX1"].Points.Color = Color.Red;
chart1.Series["CursorX2"].Points.AddXY(x2,y2Min);`
chart1.Series["CursorX2"].Points.AddXY(x2,y2Max);
chart1.Series["CursorX2"].Points.Color = Color.Yellow;

Moving a MapLayer child element programatically

I have an application with a Microsoft.Maps.MapControl.WPF map, and a few layers added with mapView.Children.Add(layer).
Each of those layers has different types of overlays on it, which are images added with layer.Children.AddChild(image, locationRect).
I want to be able to move, resize and rotate those objects from code (not from xaml which knows nothing about them), but I don't seem to be able to do the first two (rotation being quite simple).
After trial and error and finding some non Microsoft documentation I see that MapLayer.GetPositionRectangle(UIElement) returns the correct location of the object, so it would seem logical that MapLayer.SetPositionRectangle() should set it, but it doesn't and I can't find any examples of anything on the web that programatically moves an object to a new Lat/long.
Is there a way of moving a geographical object on the map, or do I have to either remove it and add it in the right place, or just move it on the canvas in X/Y coords that I have worked out from the lat/long, both of which seem wrong somehow, but this is my first WPF application (normally use forms) and maybe this is the way it is done?
The Windows-universal-samples that exist on Microsoft github page can help you. There is an example of MapControl where you can get some ideas.
This sample demonstrates how to use the universal map control (MapControl) in a UWP app.
MapControl Basics: adjusting the ZoomLevel, Heading, DesiredPtich, and map stype
Adding points of interest on the map: PushPins, images, and shapes
Adding XAML overlays on the map
Showing 3D locations in MapControl
Showing Streetside experience within MapControl
Launching Maps using URI Schemes
Url: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/MapControl
After this example, if there is more question, post here to solve it.
I think, the best way is getting an model for this XAML, where you can update this properties.
What you can do is apply standard transitions to your image through code. you can use the MapLayer.SetPosition to link it to a location on the map. You may want to use an position origin/offset or a margin to align a specific point of the image with the location.
https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.maplayer.setposition.aspx
https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.maplayer.setpositionorigin.aspx
https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.positionorigin.aspx
https://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.maplayer.setpositionoffset.aspx

Limitations in zedgraphweb

I'm trying to create candle stick chart using zedgraphweb and having below problems.
How to add horizontal scroll bar to chart. There are methods for this for ZEDGRAPH but none in zedgraphweb.
How to refresh just graph to render real time data with out page refresh. Calling this.ZedGraphWeb1.RenderGraph += new ZedGraph.Web.ZedGraphWebControlEventHandler(this.OnRenderGraph); refreshing the entire graph.
How to add tool tips?
Thanks,
Thavva
2) I don't know the differences between zedGraph and zedGraphWeb, but in zedGraph, the zedGraphControl.Refresh() method enables you to refresh the graph pane.

how to change the direction of X-axis label in ms charts

Hi I am using Ms chart control in winforms application for displaying values according to dates
I need to change the x-axis label values(Dates) direction horizantal to vertical
I have searched so many properties but i did not find any solution for this.
Any one help me on this problem
Many Thanks ....
As I understand your question - you are asking how to rotate the chart label to display vertically.
You can rotate the x-axis label as follows:
chart1.ChartAreas[0].AxisX.LabelStyle.Angle = -90;
This assumes you have associated your series with the first chart area, which is the default without modification when using the Winforms designer.
The following images shows how the chart would look before the code above is applied, the second image shows how it appears after the code is applied.
Let me know if this is not what you are trying to do and I will post an updated answer.
Before rotation
After Rotation
Edit: Another answer added after my initial post mentions in certain situations it may be important to set chartArea1.AxisX.IsLabelAutoFit = false;
If you have not already done so, get the chart samples from microsoft:
http://archive.msdn.microsoft.com/mschart
Then check the section on Labels
Chart Features > Labels
To answer your question directly, set the angle in LabelStyle, and don't forget to disable autofit
chartArea1.AxisX.IsLabelAutoFit = false;
chartArea1.AxisX.LabelStyle.Angle = 90;

Stairstepping piecharts with asp:chart control

I was perusing the asp.net chart control's sample website, and came across something in the pie chart gallery. There was 3 pie charts, "stair stepped" on top of each other. I starting using this control for a financial services application, and would like to replicate this effect. It looks like this:
3d Stair stepped Pie Chart http://www.freeimagehosting.net/uploads/87a5caabca.png
I'd post some code on what I've accomplished so far, but I have no idea where to start with this. I'm guessing maybe I'd have to create the 3 charts, and offset their axes, am I off base here? Any help would be appreciated.
You need to create 3 seperate series and assign them to seperate chart areas.
The chart areas need to stepped down the page using position.x and position.y
Other tricks include disabling the legend for the second and subsequent series.
To get the transparency affect you need to work at a data point level in the series. Note the Ownership data point is not transparent but the renting and leasing data points are.

Categories