Principales respuestas
No se muestran todos los datos en el eje x del control CHART

Pregunta
-
Saludos cordiales
Estoy realizando una grafica usando el control chart el problema es que si los valores para el eje x es muy grande no se me muestran todos, quisiera saber como puedo mostrar todos los datos, se me ocurre como manejar escalas o algo asi
por ejemplo si cargo 8 filas se muestran perfectamente pero sin son mas no se muestran que debo hacer
les agradezco infinitamente su colaboracion
gracias
winckelman
Respuestas
-
Hola Fernando.
Vamos a crear un gráfico chart, me imagino que utilizas vb2008 o superior.
Trabajaremos com DataVisualizationCharting que son los mejores gráficos para net.
Para ello importa los espacios de nombre siguientes:
Imports System.Drawing Imports System.Windows.Forms.DataVisualization.Charting
Una vez hecho eso vamos a crear un gráfico que por ejemplo tiene 12 valores mensuales. Yo personalmente tengo la manía porque utilizo muchos datos de cargar los gráficos manualmente, ya que puedo cambiar lo que precise sin problemas. Por lo tanto imaginate una variable o array de 12 posiciones. Un array será para los valores del gráfico y el otro para los períodos del mismo, por ejemplo 12 meses.
Sigue los pasos que te describo y verás un gráfico escelente. Podrás cambiarle lo que precises: Colores, Tamaños de letra, Título, etc.
Private Sub GrafValores() ' Asignamos los valores a los ejes "Y" y "X", procedentes de un array. Try Dim Yval(11) As Double Dim Xval(11) As String Dim strEjercicios(11) As String For i As Integer = 0 To 11 strEjercicios(i) = Strings.Left(m_strPerMensualesMes(i), 3) & "-" & Strings.Right(m_strPerMensualesAño(i), 2) Next i 'Rellenas el eje Y con los valores de tu array. 'El eje Y será para mostrar los ejercicios o períodos. For i As Integer = 0 To 11 Yval(i) = m_dblValoresDelGráfico(i) / 1000 Xval(i) = strEjercicios(i) Next Chart1.Titles.Clear() Chart1.Titles.Add("El título de tu gráfico") Bueno, ahora vamos a poner las propiedades al gráfico. 'Posición y propiedades del título "Colección "TITLES". 'Chart1.Titles.Add("El nombre de tu gráfico") Chart1.Titles(0).Alignment = ContentAlignment.MiddleCenter 'Centramos el título del gráfico Chart1.Titles(0).Docking = Docking.Top 'Bottom, situaría el título en la parte inferior. Chart1.Titles(0).DockingOffset = -2 'Regula la altura del titulo del gráfico Chart1.Titles(0).Font = New Font("Trebuchet MS", 14, FontStyle.Bold) 'Fuente, tamaño y estilo del título Chart1.Titles(0).ForeColor = Color.DarkSlateGray 'Color de la fuente del título. Chart1.Titles(0).ShadowOffset = 3 'Tamaño de la sombra del título Chart1.Titles(0).ShadowColor = Color.DarkGray 'Color de la sombra del título 'Ahora vamos a rellenar todo el área del gráfico 'Posición y propiedades de las series "Colección CHART AREAS" Chart1.ChartAreas("Default").AxisX.Title = "Períodos mensuales" Chart1.ChartAreas("Default").AxisX.TitleFont = New Font("Verdana", 8, FontStyle.Bold) Chart1.ChartAreas("Default").AxisX.TitleForeColor = Color.Maroon Chart1.ChartAreas("Default").AxisX.TitleAlignment = StringAlignment.Center Chart1.ChartAreas("Default").AxisX.IsMarginVisible = False Chart1.ChartAreas("Default").AxisY.Title = "Valores en miles de u.m." Chart1.ChartAreas("Default").AxisY.TitleFont = New Font("Verdana", 8, FontStyle.Bold) Chart1.ChartAreas("Default").AxisY.TitleForeColor = Color.Maroon Chart1.ChartAreas("Default").Area3DStyle.Rotation = 2 ' 20 Chart1.ChartAreas("Default").Area3DStyle.PointDepth = 75 Chart1.ChartAreas("Default").Area3DStyle.PointGapDepth = 45 Chart1.ChartAreas("Default").AxisY.TitleAlignment = StringAlignment.Center 'Ahora asignamos el tipo de gráfico que queremos. Chart1.Series("Series1").ChartType = DataVisualization.Charting.SeriesChartType.Column 'Rellenamos el gráfico con los datos escogidos Chart1.Series("Series1").Points.DataBindXY(Xval, Yval) 'Mostramos como etiqueta de datos, los valores que alimentan la gráfica Chart1.Series("Series1").IsValueShownAsLabel = True 'Visualizamos las etiquetas Chart1.Series("Series1").LabelForeColor = Color.Blue 'Pintamos el color de la etiqueta Chart1.Series("Series1").LabelFormat = "F1" 'Queda en el cálculo de la fórmula divido por 1000 y añadimos el primer decimal de las centenas. End sub
Espero que esto te sirva para todos tus gráficos.
Un cordial saludo.
Gemma.
- Editado gemma_campillo lunes, 4 de febrero de 2013 19:43 He cambiado en la respuesta unos valores.
- Marcado como respuesta ferchorh9 martes, 12 de febrero de 2013 17:05
Todas las respuestas
-
-
-
Hola Fernando.
Vamos a crear un gráfico chart, me imagino que utilizas vb2008 o superior.
Trabajaremos com DataVisualizationCharting que son los mejores gráficos para net.
Para ello importa los espacios de nombre siguientes:
Imports System.Drawing Imports System.Windows.Forms.DataVisualization.Charting
Una vez hecho eso vamos a crear un gráfico que por ejemplo tiene 12 valores mensuales. Yo personalmente tengo la manía porque utilizo muchos datos de cargar los gráficos manualmente, ya que puedo cambiar lo que precise sin problemas. Por lo tanto imaginate una variable o array de 12 posiciones. Un array será para los valores del gráfico y el otro para los períodos del mismo, por ejemplo 12 meses.
Sigue los pasos que te describo y verás un gráfico escelente. Podrás cambiarle lo que precises: Colores, Tamaños de letra, Título, etc.
Private Sub GrafValores() ' Asignamos los valores a los ejes "Y" y "X", procedentes de un array. Try Dim Yval(11) As Double Dim Xval(11) As String Dim strEjercicios(11) As String For i As Integer = 0 To 11 strEjercicios(i) = Strings.Left(m_strPerMensualesMes(i), 3) & "-" & Strings.Right(m_strPerMensualesAño(i), 2) Next i 'Rellenas el eje Y con los valores de tu array. 'El eje Y será para mostrar los ejercicios o períodos. For i As Integer = 0 To 11 Yval(i) = m_dblValoresDelGráfico(i) / 1000 Xval(i) = strEjercicios(i) Next Chart1.Titles.Clear() Chart1.Titles.Add("El título de tu gráfico") Bueno, ahora vamos a poner las propiedades al gráfico. 'Posición y propiedades del título "Colección "TITLES". 'Chart1.Titles.Add("El nombre de tu gráfico") Chart1.Titles(0).Alignment = ContentAlignment.MiddleCenter 'Centramos el título del gráfico Chart1.Titles(0).Docking = Docking.Top 'Bottom, situaría el título en la parte inferior. Chart1.Titles(0).DockingOffset = -2 'Regula la altura del titulo del gráfico Chart1.Titles(0).Font = New Font("Trebuchet MS", 14, FontStyle.Bold) 'Fuente, tamaño y estilo del título Chart1.Titles(0).ForeColor = Color.DarkSlateGray 'Color de la fuente del título. Chart1.Titles(0).ShadowOffset = 3 'Tamaño de la sombra del título Chart1.Titles(0).ShadowColor = Color.DarkGray 'Color de la sombra del título 'Ahora vamos a rellenar todo el área del gráfico 'Posición y propiedades de las series "Colección CHART AREAS" Chart1.ChartAreas("Default").AxisX.Title = "Períodos mensuales" Chart1.ChartAreas("Default").AxisX.TitleFont = New Font("Verdana", 8, FontStyle.Bold) Chart1.ChartAreas("Default").AxisX.TitleForeColor = Color.Maroon Chart1.ChartAreas("Default").AxisX.TitleAlignment = StringAlignment.Center Chart1.ChartAreas("Default").AxisX.IsMarginVisible = False Chart1.ChartAreas("Default").AxisY.Title = "Valores en miles de u.m." Chart1.ChartAreas("Default").AxisY.TitleFont = New Font("Verdana", 8, FontStyle.Bold) Chart1.ChartAreas("Default").AxisY.TitleForeColor = Color.Maroon Chart1.ChartAreas("Default").Area3DStyle.Rotation = 2 ' 20 Chart1.ChartAreas("Default").Area3DStyle.PointDepth = 75 Chart1.ChartAreas("Default").Area3DStyle.PointGapDepth = 45 Chart1.ChartAreas("Default").AxisY.TitleAlignment = StringAlignment.Center 'Ahora asignamos el tipo de gráfico que queremos. Chart1.Series("Series1").ChartType = DataVisualization.Charting.SeriesChartType.Column 'Rellenamos el gráfico con los datos escogidos Chart1.Series("Series1").Points.DataBindXY(Xval, Yval) 'Mostramos como etiqueta de datos, los valores que alimentan la gráfica Chart1.Series("Series1").IsValueShownAsLabel = True 'Visualizamos las etiquetas Chart1.Series("Series1").LabelForeColor = Color.Blue 'Pintamos el color de la etiqueta Chart1.Series("Series1").LabelFormat = "F1" 'Queda en el cálculo de la fórmula divido por 1000 y añadimos el primer decimal de las centenas. End sub
Espero que esto te sirva para todos tus gráficos.
Un cordial saludo.
Gemma.
- Editado gemma_campillo lunes, 4 de febrero de 2013 19:43 He cambiado en la respuesta unos valores.
- Marcado como respuesta ferchorh9 martes, 12 de febrero de 2013 17:05
-
-
Yo lo resolvi de esta manera:
A mi personalmente me gustan que los valores se muestren en la barra, para ello
Chart1.serie.IsValueShownAsLabel = true
Si lo que quieres es que se vean los valores de X O y tendrás que cambiar
Chart1.ChartAreas.Axes.IntervalAutoMode = VariableCount
Si asi no lo ves lo mejor es que cambies el tamaño de la letra para que entren todos.
Chart1.ChartAreas.Axes.Font --> poner letras más pequeñas.- Propuesto como respuesta Yilmer Tapias lunes, 24 de junio de 2019 3:33
-