2012-05-23 24 views
9

Tengo un gráfico de un grupo de productos, 35 en total. Escalan el eje X. El gráfico traza bien pero solo se muestran 5 de los nombres de los productos y los necesito a todos para mostrarlos. He habilitado MinorTickMark en verdadero, así que se muestran todas las marcas, pero ¿cómo obtengo su etiqueta respectiva para que sea visible?mostrando todos los valores en el control de gráfico Xaxis

No pude obtener la imagen para publicar así que aquí está el marcado de aspx y el código detrás. .aspx markup;

<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> 

Aquí está el código detrás para poner datos de muestra en la tabla.

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 
+0

Gracias por su respuesta !! – karthik

+0

@dinotom Puede responder su propia pregunta – Drake

+0

El intervalo = 1 resolvió mi problema. –

Respuesta

0

La respuesta está en los LabelStyles del Eje . El siguiente código formateará el eje (X o Y) para que se muestren todas las marcas secundarias, el intervalo sea uno y se mostrarán todas las etiquetas para cada marca.

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 

Nota: Si desea que las etiquetas escalonadas a continuación descomentar a cabo la penúltima línea de

2

control de gráfico es muy limitada, si quieres personalizarlo, usted es mejor de la creación de su propia carta, mediante la generación de una imagen:

see link

Cuestiones relacionadas