9

私はたくさんの製品のチャートを持っています、全部で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
4

2 に答える 2

2

チャートコントロールは非常に制限されています。カスタマイズする場合は、画像を生成して独自のチャートを作成することをお勧めします。

リンクを参照してください

于 2014-03-27T00:04:35.287 に答える
0

答えはAxisLabelStylesにあります。以下のコードは、すべてのマイナーな目盛りが表示され、間隔が1つで、各目盛りのすべてのラベルが表示されるように、軸(XまたはY)をフォーマットします。

 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

注:ラベルをずらしたい場合は、最後から2番目の行のコメントを外してください

于 2017-11-04T09:54:44.250 に答える