显示图表控件 Xaxis 中的所有值
Posted
技术标签:
【中文标题】显示图表控件 Xaxis 中的所有值【英文标题】:showing all values in chart control Xaxis 【发布时间】:2012-05-23 01:34:03 【问题描述】:我有一堆产品的图表,总共 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
【问题讨论】:
感谢您的回答!! @dinotom 你可以回答你自己的问题 Interval = 1 解决了我的问题。 【参考方案1】:图表控件非常有限,如果你想自定义它,你最好创建自己的图表,通过生成图像:
see link
【讨论】:
【参考方案2】:答案在于Axis LabelStyles。下面的代码将格式化轴(X 或 Y),以便显示所有小刻度线,间隔为 1,并且每个刻度线的所有标签都将显示。
cht.ChartAreas("MainChartArea").AxisX.MinorTickMark.Enabled = True
cht.ChartAreas("MainChartArea").AxisX.Interval = 1
cht.ChartAreas("MainChartArea").AxisX.IsLabelAutoFit = True
'cht.ChartAreas("MainChartArea").AxisX.LabelStyle.IsStaggered = True
cht.ChartAreas("MainChartArea").AxisX.LabelAutoFitStyle = LabelAutoFitStyles.DecreaseFont
注意:如果您希望标签交错,请取消注释掉倒数第二行
【讨论】:
以上是关于显示图表控件 Xaxis 中的所有值的主要内容,如果未能解决你的问题,请参考以下文章