C#,DataVisualization.Charting:为轴上的值分配自定义标签

时间:2014-11-03 14:31:32

标签: c# windows charts data-visualization axes

在C#中,我使用DataVisualization.Charting库进行绘图。 在一个简单的折线图中,我想在位置x = 0,1,2,3的x轴上显示一些自定义文本。

这样的东西(虽然在matplotlib中): enter image description here

This是Axis类的文档,但我不确定我应该寻找什么。

3 个答案:

答案 0 :(得分:1)

只需将这些标签添加为x值:

chart1.Series[0].Points.AddXY("Frogs", 1);
chart1.Series[0].Points.AddXY("Hogs", 4);
// etc

或者,您可以使用两个数组对点进行数据绑定:

string[] xvalues = new [] {"Frogs", "Hogs", "Bogs", "Slogs"};
int[] yvalues = new [] {1, 4, 9, 6};
chart1.Series[0].Points.DataBindXY(xvalues, yvalues);

答案 1 :(得分:1)

使用DataPoint的{​​{3}}属性。 AxisLabel属性的描述:

  

获取或设置数据点系列的 X轴标签的文本   或者一个空点。此属性仅在自定义标签具有时使用   没有为相关的Axis对象指定。

所以你的代码看起来像这样:

DataPoint dp1 = new DataPoint(1, 1);
dp1.AxisLabel = "Frogs";
DataPoint dp2 = new DataPoint(2, 4);
dp2.AxisLabel = "Hogs";
DataPoint dp3 = new DataPoint(3, 9);
dp3.AxisLabel = "Bogs";
DataPoint dp4 = new DataPoint(4, 6);
dp4.AxisLabel = "Slogs";
chart1.Series[0].Points.Add(dp1);
chart1.Series[0].Points.Add(dp2);
chart1.Series[0].Points.Add(dp3);
chart1.Series[0].Points.Add(dp4);

或者您可以使用以下代码强制执行1 = Frogs,2 = Hogs,3 = Bogs和4 = Slogs:

chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = false;    
chart1.Series[0].MarkerStyle = MarkerStyle.Circle;
chart1.Series[0].MarkerBorderColor = System.Drawing.Color.Black;
chart1.Series[0].MarkerColor = System.Drawing.Color.Red;
chart1.Series[0].Points.AddXY(1, 1);
chart1.Series[0].Points.AddXY(2, 4);
chart1.Series[0].Points.AddXY(3, 9);
chart1.Series[0].Points.AddXY(4, 6);
foreach (DataPoint dp in chart1.Series[0].Points)
{
    switch ((int)dp.XValue)
    {
        case 1: dp.AxisLabel = "Frogs"; break;
        case 2: dp.AxisLabel = "Hogs"; break;
        case 3: dp.AxisLabel = "Bogs"; break;
        case 4: dp.AxisLabel = "Slogs"; break;
    }
}

要实现与图片相同的两侧 - 您需要使用AxisLabel

仅适用于X轴,对于Y轴,您可以按照the following trick所述添加自定义标签。

您还可以使用here使用显示在图表内的数据点标签。

答案 2 :(得分:0)

您需要在轴上设置LabelStyle的“Format”属性。

请参阅:http://msdn.microsoft.com/en-us/library/system.web.ui.datavisualization.charting.labelstyle(v=vs.110).aspx

如果您搜索图表库,有一些合理的教程可以使用图表库。这是一个:http://weblogs.asp.net/dwahlin/getting-started-with-the-asp-net-3-5-chart-control