ASP.NET中使用MS Chart绘制柱状图时,如果图表中有超过9个条形图,则x轴标签不会显示。

15

我有一个关于MS Chart图表类型的柱状图问题。如果图表中有超过9个条形,x轴标签就无法正确显示,其中一些标签会消失。

这是我的图表标记:

<asp:Chart ID="chtNBAChampionships" runat="server">
   <Series>
      <asp:Series Name="Championships" YValueType="Int32" Palette="Berry"   ChartType="Column" ChartArea="MainChartArea" IsValueShownAsLabel="true">
         <Points>
            <asp:DataPoint AxisLabel="Celtics" YValues="17" />
            <asp:DataPoint AxisLabel="Lakers" YValues="15" />
            <asp:DataPoint AxisLabel="Bulls" YValues="6" />
            <asp:DataPoint AxisLabel="Spurs" YValues="4" />
            <asp:DataPoint AxisLabel="76ers" YValues="3" />
            <asp:DataPoint AxisLabel="Pistons" YValues="3" />
            <asp:DataPoint AxisLabel="Warriors" YValues="3" />
            <asp:DataPoint AxisLabel="Mara" YValues="4" />
            <asp:DataPoint AxisLabel="Saza" YValues="9" />
            <asp:DataPoint AxisLabel="Buha" YValues="6" />

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

只有9个柱时它可以工作,但我不知道为什么当超过9个柱时它就失败了。有没有办法使图表正常工作?如果可能的话,如何使每个柱具有不同的颜色?

4个回答

34

我也遇到了同样的问题,但我在页面加载时使用的是C#。

我解决了这个问题,通过添加以下内容:

    Chart2.ChartAreas["ChartArea1"].AxisX.Interval = 1;

3

Chart2.ChartAreas["ChartArea1"].AxisX.Interval = 1;

可以翻译为:设置图表2的“ChartArea1”区域的横坐标轴间隔为1。

2
<ChartAreas>
<asp:ChartArea Name="ChartArea1" >
<AxisY Title="Progress->">
</AxisY>
<AxisX Interval="1" Title="Activity->">
</AxisX>
</asp:ChartArea>

0

尝试设置图表的宽度,看看是否解决了仅显示9个条形图的问题。

<asp:Chart ID="chtNBAChampionships" runat="server" Width="400px">

您可以在数据点中设置颜色。

<asp:DataPoint AxisLabel="Celtics" YValues="17" Color="Green" />

MHinton,Width技巧不起作用。我甚至设置了Width="800px" Height="600px"来查看更改,但AxisLabel无法正确显示。同样的问题出现了。 - Tola
尝试像这样将另一个DataPoint添加到列表末尾。 - mhinton
结果仍然是一样的。AxisLabel 无法正确显示。它只显示了5个 AxisLabel,而不是像上面第二张图片中显示的10个。 - Tola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接