2017-06-02 4 views
-1

Voici donc ce que j'essaie de réaliser pour que vous compreniez mieux:
J'utilise une API pour un jeu auquel je joue pour demander le prix négocié article. Exemple retour de l'API lorsque je choisis de retourner un jours à 4 heures incréments:C# Console App, créer un graphique à partir de valeurs connues

 

    [ 
    { 
    "ts": 1496318400000, 
    "buyingPrice": 197, 
    "buyingCompleted": 2674527, 
    "sellingPrice": 197, 
    "sellingCompleted": 2403419, 
    "overallPrice": 197, 
    "overallCompleted": 5077946 
    }, 
    { 
    "ts": 1496332800000, 
    "buyingPrice": 197, 
    "buyingCompleted": 3528703, 
    "sellingPrice": 197, 
    "sellingCompleted": 3340983, 
    "overallPrice": 197, 
    "overallCompleted": 6869686 
    }, 
    { 
    "ts": 1496347200000, 
    "buyingPrice": 195, 
    "buyingCompleted": 3598391, 
    "sellingPrice": 193, 
    "sellingCompleted": 3974442, 
    "overallPrice": 194, 
    "overallCompleted": 7572833 
    }, 
    { 
    "ts": 1496361600000, 
    "buyingPrice": 194, 
    "buyingCompleted": 3438737, 
    "sellingPrice": 193, 
    "sellingCompleted": 2778138, 
    "overallPrice": 193, 
    "overallCompleted": 6216875 
    }, 
    { 
    "ts": 1496376000000, 
    "buyingPrice": 195, 
    "buyingCompleted": 2688390, 
    "sellingPrice": 195, 
    "sellingCompleted": 2627354, 
    "overallPrice": 195, 
    "overallCompleted": 5315744 
    }, 
    { 
    "ts": 1496390400000, 
    "buyingPrice": 196, 
    "buyingCompleted": 2443471, 
    "sellingPrice": 195, 
    "sellingCompleted": 2126205, 
    "overallPrice": 195, 
    "overallCompleted": 4569676 
    }, 
    { 
    "ts": 1496404800000, 
    "buyingPrice": 195, 
    "buyingCompleted": 376313, 
    "sellingPrice": 194, 
    "sellingCompleted": 416046, 
    "overallPrice": 194, 
    "overallCompleted": 792359 
    } 
    ] 

Alors JSON formaté, le temps d'époque estampillés, et les valeurs en bourse au moment fois estampillé. Super, facile à utiliser. Et ce que je veux faire avec les informations que j'ai obtenues de l'API, c'est de créer un graphique où l'axe des x serait le temps, et y-axsis serait le prix de l'article (j'utiliserais probablement le " pricePrix "prix, qui est le prix moyen bien sûr, mais ce n'est pas vraiment pertinent ici)

Donc, la création de la partie graphique est vraiment où j'ai un problème. D'autant plus que je le fais en tant qu'application console (l'application console enregistrera le graphique en tant qu'image)

Voici un exemple de ce à quoi ressemblerait le graphique si vous ne l'aviez pas encore:
(Ignorer l'autre ligne faible, il est probablement une ligne de tendance. Ceci est juste un graphe aléatoire, j'ai trouvé d'un site Web. Je voudrais également choisir les valeurs sur l'axe des y mieux)
graph

est donc ici une sorte de un résumé des choses avec lesquelles j'ai besoin d'aide (non, je ne demande pas simplement une copie coller comment faire tout, je veux vraiment apprendre, je n'ai jamais rien fait avec des graphes en C# avant):

  • Comment créer un graphique comme celui-ci?
    • créer ensemble un graphique à partir des valeurs
    • Obtenir ces points dans le graphique pour indiquer qu'il ya un point de données ici (il est donc non seulement une ligne qui pourrait être source de confusion)
    • Décider un intervalle bon ajustement entre les valeurs sur l'axe des y. (Le prix d'un article peut varier de 1 à int32 max)
  • Enregistrement du graphique à la fin comme un fichier image

Toute aide est grandement appréciée!
Je n'ai pas non plus peur d'utiliser des bibliothèques tierces au cas où il y en aurait une qui serait utile pour ça.

+1

vous voulez tout ce que dans la console application? bonne chance alors – ASh

+0

Il va être beaucoup plus facile de créer une interface utilisateur pour cela. Créez simplement une interface utilisateur WinForms simple à l'aide de la bibliothèque ZedGraph. Il y a des tonnes d'informations sur google pour les deux. Ensuite, quand vous avez un problème spécifique, après l'avoir étudié vous-même, revenez et posez-le. Bonne chance! – KDecker

+0

@ASh Ceci est pour un bot Discord, et il enverrait le graphe pris comme une image à la conversation Discord. Donc, ce n'est pas juste que je veux voir le graphique moi-même, j'en ai vraiment besoin sauvegardé comme une image.Alors, est-ce qu'il est utile de faire cela en tant qu'application Win Forms? Est-ce que c'est pour une raison quelconque plus facile? –

Répondre

0

Vous pouvez simplement utiliser les contrôles de graphique standard pour WinForms tant que vous ajoutez les références nécessaires: System.Drawing, System.Windows.Forms et System.Windows.Forms.DataVisualization. échantillon minimum qui permet d'économiser en fait une image:

var c = new Chart(); c.ChartAreas.Add(new ChartArea("area")); c.Series.Add(new Series("test") {Points = {1, 1.1, 2.3, 1.5}}); c.SaveImage(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\test.png", ChartImageFormat.Png);