我需要創建一個具有以下屬性的圖形:
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. zedgraph沒有繪製圖形
- 2. C#用ZedGraph繪圖
- 3. 如何使用C++和ZedGraph繪製日期軸的圖形?
- 4. 如何使用Zedgraph庫在windows窗體中繪製圖形?
- 5. ZedGraph C#中的繪圖點?
- 6. 在c中繪製圖形
- 7. C#Zedgraph,圖形跳轉
- 8. 如何使用c繪製圖形?
- 9. 使用Visual C++繪製圖形
- 10. 如何使用C#在ZedGraph的XAxis上繪製系統時間?
- 11. 如何在asp.net中使用c#繪製圖形,而不使用zed圖形
- 12. 如何使用ZedGraph繪製三角波?
- 13. 如何使用ZedGraph繪製方波?
- 14. 在c中使用ZedGraph#
- 15. 使用Matplotlib在Python中繪製圖形
- 16. 在C++中以圖形方式繪製頂點用於圖形
- 17. 如何在C#中繪製熱圖形?
- 18. 在C++窗口中繪製圖形
- 19. 在C中繪製圖形(Ubuntu的)
- 20. 在C#中繪製圖形WPF
- 21. 如何在C#中繪製XY圖形?
- 22. 使用圖形#繪製圖形
- 23. 在Windows應用程序中使用C#繪製條形圖
- 24. 繪製圖形使用matplotlib
- 25. 使用Tensorflow繪製圖形
- 26. 在Winforms中繪製圖形繪製
- 27. 在C#中繪製波形#
- 28. 在c中繪製矩形#
- 29. 繪製圖像用C#圖形
- 30. C#中繪製圖元的圖形庫?
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