我需要创建一个具有以下属性的图形:
X轴用于学校名称。
Y轴是用于类名的。
在点(x,y)我需要把一个点表示它的颜色将代表学生的数量(黑色意味着更多的学生)。
我正在使用ZedGraph(使用该示例:http://zedgraph.org/wiki/index.php?title=Gradient-By-Value_Demo),但我不知道如何将点(并确定它是黑色级别)放在正确的位置(将其与学校名称和班级名称进行比较)。
此外,我不知道如何使X和Y轴显示学校的名称和班级的名称。
我该怎么做? (它不一定要在zedGraph中)。
非常感谢!使用zedGraph在C#中绘制图形
3
A
回答
2
问题是ZedGraph以一种奇怪的方式处理文本类型的尺度。因此,当您同时使用两种文本类型的缩放比例时,几乎不可能正确显示数据。
但是你可以欺骗ZG一点点。
整个技巧是使用隐藏比例坐标显示数据,同时显示第二个假比例。
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();
0
我并没有在我的项目中做到这一点,但我根据一些标准改变颜色。你应该很容易修改。在图形类中查看stochfit.sourceforge.net中的svn库。您可能还想看看我在仓库中使用的zedgraph版本,修复了一些图像捕捉和缩放bug。
相关问题
- 1. C#用ZedGraph绘图
- 2. 如何使用C++和ZedGraph绘制日期轴的图形?
- 3. 如何使用Zedgraph库在windows窗体中绘制图形?
- 4. ZedGraph C#中的绘图点?
- 5. 在c中绘制图形
- 6. 使用Visual C++绘制图形
- 7. C#使用QuickGraph和GraphViz绘制图形
- 8. 如何使用ZedGraph绘制方波?
- 9. 如何使用ZedGraph绘制三角波?
- 10. 在C++中以图形方式绘制顶点用于图形
- 11. 在C中绘制图形(Ubuntu的)
- 12. 如何在C#中绘制XY图形?
- 13. 在C++窗口中绘制图形
- 14. 如何在C#中绘制热图形?
- 15. 在c中使用ZedGraph#
- 16. 使用图形#绘制图形
- 17. 在Windows应用程序中使用C#绘制条形图
- 18. 使用Tensorflow绘制图形
- 19. 绘制图形使用matplotlib
- 20. 在C#中绘制波形#
- 21. C#中绘制图元的图形库?
- 22. C#图形绘制库?
- 23. 如何使用c语言在framebuffer中绘制图形..?
- 24. 如何在C++中使用GNUplot绘制图形
- 25. 在ExtJs中绘制图形
- 26. 在android中绘制图形
- 27. 在UIView中绘制图形
- 28. 在UIButton中绘制图形
- 29. 在Android中绘制图形
- 30. 在使用乳胶时绘制图形
Gacek你能帮我解决问题吗?http://stackoverflow.com/questions/10222782/zedgraph-smoothly-move-y2axis-with-chart-line谢谢。 – amaranth 2012-04-19 09:34:23
哇,对不起,我一直没有使用zedgraph一年多了,我不记得很多......但我会试着看看 – Gacek 2012-04-19 11:25:03