Je dois créer un graphique qui a les propriétés suivantes:
L'axe X est pour les noms d'écoles.
L'axe Y est pour les noms de classes. In Point (x, y) Je dois mettre un point dont la couleur représentera le nombre d'élèves (plus sombre signifie plus d'élèves).
J'utilise ZedGraph (en utilisant cet exemple: http://zedgraph.org/wiki/index.php?title=Gradient-By-Value_Demo), mais je ne sais pas comment mettre le point (et déterminer son niveau d'obscurité) dans la bonne position (comparez-le au nom de l'école et au nom de la classe).
Aussi, je ne sais pas comment faire les axes X et Y pour montrer le nom de l'école et le nom de la classe.
Comment puis-je faire cela? (Il ne doit PAS être dans zedGraph).
merci beaucoup!Dessiner un graphique en C# en utilisant zedGraph
Répondre
Le problème est que ZedGraph traite une échelle de type Texte d'une manière un peu étrange. Il est donc presque impossible d'afficher correctement les données lorsque vous avez les deux échelles de type Texte.
Mais vous pouvez tromper ZG un peu.
L'astuce consiste à afficher les données en utilisant les coordonnées de l'échelle cachée, tout en affichant la deuxième, fausse échelle.
string[] schools = { "A", "B", "C" };
string[] classes = { "cl. 1", "cl. 2", "cl. 3" };
var pane = zg1.GraphPane;
Random x = new Random();
// Hide the basic scale, show the second with text labels
pane.X2Axis.Type = AxisType.Text;
pane.X2Axis.IsVisible = true;
pane.Y2Axis.Type = AxisType.Text;
pane.Y2Axis.IsVisible = true;
pane.XAxis.Scale.IsVisible = false;
pane.YAxis.Scale.IsVisible = false;
pane.X2Axis.Scale.TextLabels = schools;
pane.Y2Axis.Scale.TextLabels = classes;
// Main problem - synchronize the scales correctly
pane.XAxis.Scale.Min = -0.5;
pane.XAxis.Scale.Max = schools.Count() - 0.5;
pane.YAxis.Scale.Min = -0.5;
pane.YAxis.Scale.Max = classes.Count() - 0.5;
pane.YAxis.MajorGrid.IsZeroLine = false;
// generate some fake data
PointPairList list = new PointPairList();
for(int i=0;i<schools.Count();i++)
for (int j = 0; j < classes.Count(); j++)
{
list.Add(new PointPair(i, j, x.Next(30)));
}
var pointsCurve = pane.AddCurve("", list, Color.Transparent);
pointsCurve.Line.IsVisible = false;
// Create your own scale of colors.
pointsCurve.Symbol.Fill = new Fill(new Color[] { Color.Blue, Color.Green, Color.Red });
pointsCurve.Symbol.Fill.Type = FillType.GradientByZ;
pointsCurve.Symbol.Fill.RangeMin = 0;
pointsCurve.Symbol.Fill.RangeMax = 30;
pointsCurve.Symbol.Type = SymbolType.Circle;
pane.AxisChange();
zg1.Refresh();
Je ne fais pas tout à fait ceci dans mon projet, mais je change la couleur basée sur quelques critères. Ce devrait être assez facile à modifier. Regardez le dépôt svn dans stochfit.sourceforge.net dans les classes graphiques. Vous pouvez aussi jeter un oeil à la version de zedgraph que j'ai dans mon dépôt, une capture d'image et un bug de mise à l'échelle ont été corrigés.
- 1. Comment puis-je dessiner un graphique avec un axe de date en utilisant C++ et ZedGraph?
- 2. Comment dessiner une onde carrée en utilisant ZedGraph?
- 3. Comment dessiner un graphique en utilisant WPF et IronPython
- 4. Comment dessiner un graphique en PHP?
- 5. Graphique en C++ en utilisant gnuPlot
- 6. Lissage des lignes de graphique en Zedgraph sans «bosses»
- 7. comment dessiner graphique à courbes en utilisant Google charts
- 8. Graphiques C# avec ZedGraph
- 9. ZedGraph en C#: aucun point affiché
- 10. Comment dessiner plusieurs rectangles en utilisant C#
- 11. Api pour dessiner graphique en android
- 12. dessiner une chaîne avec un fond transparent en utilisant C#?
- 13. Est-ce un bon moyen de dessiner un graphique de bougie en utilisant un graphique flash ouvert?
- 14. Dessiner un graphique avec l'axe X proportionnel en Python
- 15. Comment ajouter des données en temps réel dans un graphe ZedGraph à deux axes Y en utilisant C#?
- 16. Comment dessiner un arbre en utilisant Gtkmm?
- 17. un problème avec l'interface graphique en utilisant C#
- 18. Créer un graphique dans Excel en utilisant C#
- 19. Tracer graphique en utilisant .NET
- 20. ZedGraph barres empilées avec de multiples points en C#
- 21. Comment enregistrer un objet graphique en tant qu'image en C#?
- 22. Dessiner Arc en utilisant javascript
- 23. graphiques VC++ en utilisant Graphique X
- 24. Graphique à barres ZedGraph C# - comment vérifier quelle barre a été cliquée par la souris?
- 25. Dessiner un lien et un graphique sur un autre graphique
- 26. Bibliothèque graphique en C
- 27. Créer un graphique en utilisant PHP-MySQL
- 28. Créer un graphique en utilisant javascript
- 29. Insérer un graphique en utilisant Asp.Net VB.NET
- 30. Est-il possible de dessiner un graphique linéaire dans Gridpanel en utilisant ExtJS
Gacek pouvez-vous me aider à la question http://stackoverflow.com/questions/10222782/zedgraph-smoothly-move-y2axis-with-chart-line Merci. – amaranth
Wow, désolé, je n'ai pas travaillé avec zedgraph depuis plus d'un an maintenant, je ne me souviens pas beaucoup ... Mais je vais essayer et jeter un oeil – Gacek