mit C# mit .NET-Diagramm.Erhalten Sie Y-Wert über .NET-Diagramm-Serie von X-Wert
Ich versuche, mehrere Wellenformen graphisch darzustellen, und ich möchte meine Maus über den Diagrammbereich bewegen, und mein Tooltip den Y-Wert jeder Serie in der Tabelle auf dieser X-Wert Position angezeigt haben.
| at xValue 12 | |
| _ = 3 | |
| * = 2 | * * |
| ________|______________________________*_____ |
| / | * |
| __________*/*********|***************************** |
| * | |
| * | |
|______________________|_____________________________________|
Wie oben in diesem Diagramm. Nachfolgend finden Sie eine Version meines Code:
void chart1_MouseMove(object sender, MouseEventArgs e)
{
var pos = e.Location;
_point.X = e.Location.X;
_point.Y = e.Location.Y;
try
{
if ((chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.X) >= 0) && (chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.X) <= max))
{
//Crossair
chart1.ChartAreas[0].CursorX.SetCursorPixelPosition(_point, true);
//Tooltips
double xValue = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.X);
double yValue = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Y);
string all_Data_Values = "";
foreach (var series in chart1.Series)
{
all_Data_Values = all_Data_Values + Environment.NewLine + series.Name + ": " + yValue;
}
tooltip.Show("At " + Math.Truncate(xValue * 1000)/1000 + all_Data_Values, this.chart1, pos.X - 40, pos.Y - 20);
}
}
catch (Exception exception)
{
//
}
}
Dies ist, was ich habe, und jetzt zeigt es nur den Y-Wert meiner Mauscursorposition ein. Ich habe andere Codes ausprobiert und versucht, die x-Werte irgendwie in chart1.Series [] zu mappen, aber es hat auch nicht funktioniert.
Betrachten Sie ZedGraph, es ist nicht schlecht. – David
Haben Sie versucht, mit dem Debugger durch den Code zu gehen, um zu sehen, was schief läuft? –
Sieht für mich richtig aus - Ich habe einen ähnlichen Code (außer dass ich den X-Wert bekommen habe, schaue ich in der Serie nach, um den nächsten tatsächlichen Wert zu erhalten). Erhalten Sie irgendwelche Ausnahmen? Was ist 'max'? –