J'ai une série de cartes fastline où le XI ont DateTime
et sur Y double
valeurs - série est ajoutée au tableau avec une telle méthode:incorrect des points de données vides sont affichés dans un graphique fastline
public virtual bool AddOrUpdateSeries(int caIndex, Series newSeries, bool visibleInLegend)
{
var chartArea = GetChartArea(caIndex);
if (chartArea == null) return false;
var existingSeries = _chart.Series.FirstOrDefault(s => s.Name == newSeries.Name);
if (existingSeries != null)
{
existingSeries.Points.Clear();
AddPoints(newSeries.Points, existingSeries);
}
else
{
newSeries.ChartArea = chartArea.Name;
newSeries.Legend = chartArea.Name;
newSeries.IsVisibleInLegend = visibleInLegend;
newSeries.BorderWidth = 2;
newSeries.EmptyPointStyle = new DataPointCustomProperties { Color = Color.Red };
_chart.Series.Add(newSeries);
}
return true;
}
Comme vous pouvez voyez, je suis en train de définir le style pour que le point vide soit affiché en rouge.
Les premiers points qui sont ajoutés à la série sont les suivantes:
Comme vous pouvez le voir, deux premiers points ont la même valeur Y, mais en plus - premier a IsEmpty
jeu de drapeau.
point de vide est ajouté à la série avec un tel morceau de code:
series.Points.Add(new DataPoint
{
XValue = _beginOADate,
YValues = new[] { firstDbPoint.Y },
IsEmpty = true
});
où _beginOADate
est le double de la valeur de OADate = 42563
= 12/07/2016 00:00 as DateTime
.
Le deuxième DateTime
son point est 15/08/2016 22:20
Lorsque graphique est affiché avec le début de l'axe X, tout est ok comme sur l'image ci-dessous - vide commence à point de données 07/12/2016 et dure jusqu'à 15/08/2016.
Mais, quand je défiler une position sur X, la vide ligne rouge de point de données n'est pas affiché - à la place, toute la partie visible de la ligne de vide du point de données est affiché comme il est non vide:
Quelqu'un sait comment résoudre ce problème afin que toute la ligne à partir du point de données vide jusqu'au premier point de données non vide soit toujours affichée en rouge?
Bien entendu, la solution fictive consisterait à ajouter un point de données vide supplémentaire très proche du premier point non vide, mais je n'aime pas cette solution.
Fastline ne prend pas en charge toutes les fonctions; le problème persiste-t-il lors du passage en ligne? – TaW
Eh bien, quand je l'ai changé à 'Line' tout fonctionne comme prévu - Merci TaW, mais le rendu du graphique est beaucoup plus lent. J'ai des graphiques avec 30k points, donc quand il est zoomé, il ralentit beaucoup trop. Quelqu'un sait comment le rendre plus lisse? – pitersmx
@TaW Pouvez-vous poster votre commentaire comme réponse? En fait, cela résout le problème. Cela pourrait être utile aux autres. – pitersmx