显示图表控件Xaxis中的所有值

时间:2012-05-23 01:34:03

标签: vb.net mschart

我有一堆产品图表,共35个。他们扩大了X轴。该图表很好,但只有5个产品名称显示,我需要它们全部显示。我已将MinorTickMark设为true,因此所有刻度线都会显示,但我如何才能看到它们各自的标签?

我无法将图像发布,所以这里是aspx标记和背后的代码。 .aspx标记;

<asp:Chart ID="MonthinYearchart" Width="350px" Height="420px" runat="server">
            <Series> 
            <asp:Series  ChartType="Bar"  ChartArea="MainChartArea" Name="PnL"> 

            </asp:Series> 
            </Series> 
            <ChartAreas> 
                 <asp:ChartArea Name="MainChartArea"> 
                 </asp:ChartArea> 
            </ChartAreas> 
        </asp:Chart>

以下是将样本数据放入图表中的代码。

Private Sub AllCommodforMonthChart()
    Dim cht As Chart = MonthinYearchart
    'create the arraylist of data
    'this is hardcoded to get chart to work, you will have to
    'set up the code to retrieve it from database
    Dim list As List(Of String) = GetList("Futures Data")
    Const val As Integer = 65

    'create all the data points
    For i As Integer = 0 To list.Count - 1
        cht.Series("PnL").Points.AddXY(list(i), val * i)
    Next
    cht.Series("PnL").ChartType = SeriesChartType.Bar
    cht.ChartAreas("MainChartArea").AxisX.MinorTickMark.Enabled = True

End Sub

2 个答案:

答案 0 :(得分:2)

图表控件非常有限,如果你想自定义它,你最好通过生成图像来创建自己的图表:

see link

答案 1 :(得分:0)

答案在于Axis LabelStyles。下面的代码将格式化轴(X或Y),以便显示所有次要刻度线,间隔为1,每个刻度线的所有标签都将显示。

layers.begin() + pos == layers.end()

注意:如果您希望标签错开,则取消注释掉下一行到最后一行