A voir également:
- Livecharts example
- Example de rapport de stage - Guide
- Url example - Guide
- Compt de example@exemple.com - Forum Mail
- Sendkeys batch file example - Forum Autoit / batch
- If exist batch example ✓ - Forum Autoit / batch
11 réponses
Utilisateur anonyme
13 août 2020 à 17:15
13 août 2020 à 17:15
Il suffit d'adapter un peu
List<KeyValuePair<DateTime, double>> datas = new List<KeyValuePair<DateTime, double>> { new KeyValuePair<DateTime, double>(DateTime.Parse("10/08/2020"), 12.5), new KeyValuePair<DateTime, double>(DateTime.Parse("11/08/2020"), 15.2), new KeyValuePair<DateTime, double>(DateTime.Parse("12/08/2020"), 16.8), }; var lineCpu = new LineSeries(){ Title = "Cpu" }; lineCpu.Values = new ChartValues<DateTimePoint>(); foreach (var item in datas) lineCpu.Values.Add(new DateTimePoint(item.Key, item.Value)); cartesianChart1.Series = new SeriesCollection { lineCpu }; Func<double, string> xFormatter = val => new DateTime((long)val).ToString("dd/MM/yyyy"); cartesianChart1.AxisX = new AxesCollection { new Axis{Title = "Date", LabelFormatter = xFormatter} };
Utilisateur anonyme
10 août 2020 à 16:36
10 août 2020 à 16:36
Salut,
c'est ça https://www.nuget.org/packages/LiveCharts.Wpf ?
c'est ça https://www.nuget.org/packages/LiveCharts.Wpf ?
Utilisateur anonyme
10 août 2020 à 16:59
10 août 2020 à 16:59
Je vais le télécharger et essayer, mais à brule pour point, Values ne serait ce pas une collection et donc il faudrait y faire un Add
lineCpu.Values.Add(new ChartValues<ObservablePoint> //......)
Utilisateur anonyme
10 août 2020 à 17:03
10 août 2020 à 17:03
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
10 août 2020 à 17:31
10 août 2020 à 17:31
Ha oui pardon, j'avais mal lu ton code....
En l'état à chaque item tu crées une nouvelle collection de 1 item.
Il faut initialiser la collection, puis la remplir
En l'état à chaque item tu crées une nouvelle collection de 1 item.
Il faut initialiser la collection, puis la remplir
var lineCpu = new LineSeries(){ Title = "Cpu" }; lineCpu.Values = new ChartValues<ObservablePoint>(); foreach (var item in cpuRamParses) lineCpu.Values.Add(new ObservablePoint(Convert.ToDouble(item.Cpu), Convert.ToDouble(item.HeuresMinutes)));
J'ai réussi à tout mettre dans ma list, mais au moment d'afficher rien ne ce passe j'ai essayer ceci :
Mais aucun affichage d'effectué
var lineCpu = new LineSeries(){ Title = "Cpu" }; lineCpu.Values = new ChartValues<ObservablePoint>(); foreach (var item in cpuRamParses) lineCpu.Values.Add(new ObservablePoint(Convert.ToDouble(item.Cpu), item.date.ToOADate())); cartesianChartCpu.Series = new SeriesCollection(new LineSeries(lineCpu));et:
var lineCpu = new LineSeries(){ Title = "Cpu" }; lineCpu.Values = new ChartValues<ObservablePoint>(); foreach (var item in cpuRamParses) lineCpu.Values.Add(new ObservablePoint(Convert.ToDouble(item.Cpu), item.date.ToOADate())); cartesianChartCpu.Series = new SeriesCollection(lineCpu);
Mais aucun affichage d'effectué
MelmanM
Messages postés
20
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
20 août 2020
11 août 2020 à 15:39
11 août 2020 à 15:39
J'ai finalement trouvé quelque chose de fonctionnel je suis juste bloqué sur le fait que mon axe X ne sois pas au format date time...
voici mon code

voici mon code
public Form1() { InitializeComponent(); } private List<CpuRamParse> cpuRamParses = new List<CpuRamParse>(); public void Parsing(string chemin) { IEnumerable<string> lines = File.ReadAllLines(chemin); foreach (string item in lines) { DateTime fileCreationTime = Convert.ToDateTime(File.GetCreationTime(file).ToShortDateString()); CpuRamParse leLog = CpuRamParse.Trie(item, fileCreationTime); if (leLog != null) cpuRamParses.Add(leLog); } } private void button1_Click(object sender, EventArgs e) { Parsing(file); var xvals = new List<DateTime>(); var yvalsCpu = new List<double>(); var yvalsRam = new List<double>(); var dayConfig = Mappers.Xy<DateModel>() .X(dayModel => (double)dayModel.DateTime.Ticks / TimeSpan.FromHours(1).Ticks) .Y(dayModel => dayModel.Value); foreach (var item in cpuRamParses) { xvals.Add(item.date); yvalsCpu.Add(Convert.ToDouble(item.Cpu)); yvalsRam.Add(Convert.ToDouble(item.Ram)); } Cpu = new LineSeries { Title = "Cpu", Values = yvalsCpu.AsChartValues().AsGearedValues().WithQuality(Quality.Medium), Fill = Brushes.Transparent, PointGeometry = DefaultGeometries.Diamond, PointGeometrySize = 9, StrokeThickness = 1 }; Ram = new LineSeries { Title = "Ram", Values = yvalsRam.AsChartValues().AsGearedValues().WithQuality(Quality.Medium), Fill = Brushes.Transparent, PointGeometry = DefaultGeometries.Diamond, PointGeometrySize = 9, StrokeThickness = 1 }; cartesianChartCpu.Series = new SeriesCollection { Cpu, Ram }; cartesianChartCpu.DisableAnimations = true; cartesianChartCpu.Hoverable = false; cartesianChartCpu.AnimationsSpeed = TimeSpan.FromMilliseconds(150); } public LineSeries Cpu { get; set; } public LineSeries Ram { get; set; } public class DateModel { public DateTime DateTime { get; set; } public double Value { get; set; } } private void CpuSeries_CheckedChanged(object sender, EventArgs e) { if (Cpu != null) { Cpu.Visibility = Cpu.Visibility == Visibility.Visible ? Visibility.Hidden : Visibility.Visible; } else _ = chbCpuSeries.Checked == true; } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (Ram != null) { Ram.Visibility = Ram.Visibility == Visibility.Visible ? Visibility.Hidden : Visibility.Visible; } else _ = chbRamSeries.Checked == true; } private void button4_Click(object sender, EventArgs e) { cartesianChartCpu.AxisX[0].MinValue = 0; cartesianChartCpu.AxisX[0].MaxValue = 25; } private void button3_Click(object sender, EventArgs e) { cartesianChartCpu.AxisX[0].MinValue += 25; cartesianChartCpu.AxisX[0].MaxValue += 25; } private void button2_Click(object sender, EventArgs e) { cartesianChartCpu.AxisX[0].MinValue -= 25; cartesianChartCpu.AxisX[0].MaxValue -= 25; }
Utilisateur anonyme
13 août 2020 à 11:00
13 août 2020 à 11:00
Bonjour
là
https://lvcharts.net/App/examples/v1/wpf/Stacked%20Area
Ils utilisent des DateTimePoint
là
https://lvcharts.net/App/examples/v1/wpf/Stacked%20Area
Ils utilisent des DateTimePoint
MelmanM
Messages postés
20
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
20 août 2020
13 août 2020 à 14:10
13 août 2020 à 14:10
Utilisateur anonyme
13 août 2020 à 14:38
13 août 2020 à 14:38
Parce que chez moi, en faisait bêtement comme dans l'exemple ça marche

using LiveCharts; using LiveCharts.Defaults; using LiveCharts.Wpf; using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows; namespace Test_WPF { /// <summary> /// Logique d'interaction pour MainWindow.xaml /// </summary> public partial class MainWindow : Window, INotifyPropertyChanged { public MainWindow() { InitializeComponent(); List<KeyValuePair<DateTime, double>> datas = new List<KeyValuePair<DateTime, double>> { new KeyValuePair<DateTime, double>(DateTime.Parse("10/08/2020"), 12.5), new KeyValuePair<DateTime, double>(DateTime.Parse("11/08/2020"), 15.2), new KeyValuePair<DateTime, double>(DateTime.Parse("12/08/2020"), 16.8), }; var lineCpu = new LineSeries(){ Title = "Cpu" }; lineCpu.Values = new ChartValues<DateTimePoint>(); foreach (var item in datas) lineCpu.Values.Add(new DateTimePoint(item.Key, item.Value)); Series = new SeriesCollection { lineCpu }; XFormatter = val => new DateTime((long)val).ToString("dd/MM/yyyy"); DataContext = this; } private SeriesCollection series; /// <summary> /// Séries du graph /// </summary> public SeriesCollection Series { get { return series; } set { if (series != value) { series = value; GenerePropertyChanged("Series"); } } } private Func<double,string> xFormatter; /// <summary> /// Format de l'axe X /// </summary> public Func<double,string> XFormatter { get { return xFormatter; } set { if (xFormatter != value) { xFormatter = value; GenerePropertyChanged("XFormatter"); } } } #region INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; private void GenerePropertyChanged(string Propriete) { if (this.PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(Propriete)); } #endregion } }
<Window x:Class="Test_WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" Title="MainWindow" Height="719" Width="694"> <Grid > <lvc:CartesianChart Series="{Binding Series}"> <lvc:CartesianChart.AxisX> <lvc:Axis Title="Dates" LabelFormatter="{Binding XFormatter}"></lvc:Axis> </lvc:CartesianChart.AxisX> </lvc:CartesianChart> </Grid> </Window>

J'ai réussi grâce à ton aide, Merci ! ça ma aussi permis d'apprendre le "KeyValuePair" ^^ !
je post le code ici en espérant que cela serve un jour, je précise que ce code fonctionne pour les windforms et non les wpf
je post le code ici en espérant que cela serve un jour, je précise que ce code fonctionne pour les windforms et non les wpf
InitializeComponent(); string chemin = @"votreChemin"; IEnumerable<string> lines = File.ReadAllLines(chemin); foreach (string item in lines) { DateTime fileCreationTime = Convert.ToDateTime(File.GetCreationTime(chemin).ToShortDateString()); CpuRamParse leLog = CpuRamParse.Trie(item); if (leLog != null) cpuRamParses.Add(leLog); } List<KeyValuePair<DateTime, double>> datas = new List<KeyValuePair<DateTime, double>>(); foreach (var item in cpuRamParses) datas.Insert(0, new KeyValuePair<DateTime, double>(item.date, Convert.ToDouble(item.Cpu))); var lineCpu = new LineSeries(){ Title = "Cpu" }; lineCpu.Values = new ChartValues<DateTimePoint>(); foreach (KeyValuePair<DateTime, double> item in datas) lineCpu.Values.Add(new DateTimePoint(item.Key, item.Value)); cartesianChart1.Series = new SeriesCollection { lineCpu }; Func<double, string> xFormatter = val => new DateTime((long)val).ToString("dd/MM/yyyy HH:mm"); cartesianChart1.AxisX = new AxesCollection { new Axis{Title = "Date", LabelFormatter = xFormatter} };
17 août 2020 à 09:01