Visual Basic.NET - ¿Cómo cambiar orientación etiquetas eje X?

 
Vista:
sin imagen de perfil
Val: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo cambiar orientación etiquetas eje X?

Publicado por José Vicente (113 intervenciones) el 30/10/2020 18:30:48
Hola de nuevo, estoy muy decepcionado pues no encuentro solución a mi problema. Necesito girar las etiquetas del eje X de una gráfica que creo dinámicamente para evitar que se solapen unas con otras. Por mucho que busco por la red no encuentro como hacerlo. ¿Puede alguien echarme una mano? Gracias de antemano.
Mi código es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'CREAMOS EL GRÁFICO
 
Dim chartPage As Chart
Dim exCharts As ChartObjects = .ActiveSheet.ChartObjects
Dim myChart As ChartObject = exCharts.Add(462, 2, 416, 400)
 
chartPage = myChart.Chart
 
'DAMOS VALORES A LOS EJES DE LA GRÁFICA
 
Dim coleccion As SeriesCollection = chartPage.SeriesCollection
Dim serie1, serie2, serie3, serie4 As Excel.Series
 
serie1 = coleccion.NewSeries()
serie1.Name = .ActiveSheet.Range("B1").Value
serie1.XValues = .ActiveSheet.Range("A2:A32")
serie1.Values = .ActiveSheet.Range("B2:B32")
 
serie2 = coleccion.NewSeries()
serie2.Name = .ActiveSheet.Range("C1").Value
serie2.XValues = .ActiveSheet.Range("A2:A32")
serie2.Values = .ActiveSheet.Range("C2:C32")
 
serie3 = coleccion.NewSeries()
serie3.Name = .ActiveSheet.Range("D1").Value
serie3.XValues = .ActiveSheet.Range("A2:A32")
serie3.Values = .ActiveSheet.Range("D2:D32")
 
serie4 = coleccion.NewSeries()
serie4.Name = .ActiveSheet.Range("E1").Value
serie4.XValues = .ActiveSheet.Range("A2:A32")
serie4.Values = .ActiveSheet.Range("E2:E32")
 
chartPage.ChartType = Excel.XlChartType.xlXYScatterLinesNoMarkers
chartPage.HasTitle = True
chartPage.ChartTitle.Characters.Text = "TENSIÓN MENSUAL"
 
chartPage.HasLegend = True
    chartPage.Legend.Position = XlLegendPosition.xlLegendPositionRight
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo cambiar orientación etiquetas eje X?

Publicado por José Vicente (113 intervenciones) el 03/11/2020 19:26:13
Solucionado, he aquí el código, he extraido el día de la fecha para ponerlo en el eje X.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
'CREAMOS EL GRÁFICO
 
Dim chartPage As Chart
Dim exCharts As ChartObjects = .ActiveSheet.ChartObjects
Dim myChart As ChartObject = exCharts.Add(462, 2, 416, 400)
Dim ejeX, ejeY As Excel.Axes
 
chartPage = myChart.Chart
 
'DAMOS VALORES A LOS EJES DE LA GRÁFICA
 
Dim coleccion As SeriesCollection = chartPage.SeriesCollection
Dim serie1, serie2, serie3, serie4 As Excel.Series
 
serie1 = coleccion.NewSeries()
serie1.Name = .ActiveSheet.Range("B1").Value
serie1.XValues = .ActiveSheet.Range("F1:F33")
serie1.Values = .ActiveSheet.Range("B2:B32")
 
serie2 = coleccion.NewSeries()
serie2.Name = .ActiveSheet.Range("C1").Value
serie2.XValues = .ActiveSheet.Range("F1:F33")
serie2.Values = .ActiveSheet.Range("C2:C32")
 
serie3 = coleccion.NewSeries()
serie3.Name = .ActiveSheet.Range("D1").Value
serie3.XValues = .ActiveSheet.Range("F1:F33")
serie3.Values = .ActiveSheet.Range("D2:D32")
 
serie4 = coleccion.NewSeries()
serie4.Name = .ActiveSheet.Range("E1").Value
serie4.XValues = .ActiveSheet.Range("F1:F33")
serie4.Values = .ActiveSheet.Range("E2:E32")
 
chartPage.ChartType = Excel.XlChartType.xlXYScatterLinesNoMarkers
chartPage.ApplyDataLabels(Type:=XlDataLabelsType.xlDataLabelsShowNone, LegendKey:=False, HasLeaderLines:=True)
 
'DAMOS FORMATO A LOS EJES DEL GRÁFICO
 
With chartPage
 
    ejeX = .Axes(, XlAxisGroup.xlPrimary)
    ejeX.Item(XlAxisType.xlCategory).HasTitle = True
    ejeX.Item(XlAxisType.xlCategory).AxisTitle.Characters.Text() = "DÍAS"
    ejeX.Item(XlAxisType.xlCategory).HasMajorGridlines = True
    ejeX.Item(XlAxisType.xlCategory).HasMinorGridlines = True
    ejeX.Item(XlAxisType.xlCategory).MaximumScale = 31
    ejeX.Item(XlAxisType.xlCategory).MinimumScale = 1
    ejeX.Item(XlAxisType.xlCategory).TickLabels.Orientation = XlTickLabelOrientation.xlTickLabelOrientationAutomatic
 
    ejeY = .Axes(, XlAxisGroup.xlPrimary)
    ejeY.Item(XlAxisType.xlValue).HasTitle = True
    ejeY.Item(XlAxisType.xlValue).AxisTitle.Characters.Text() = "VALORES"
    ejeY.Item(XlAxisType.xlValue).HasMajorGridlines = True
    ejeY.Item(XlAxisType.xlValue).HasMinorGridlines = True
    ejeY.Item(XlAxisType.xlValue).MaximumScale = 100
    ejeY.Item(XlAxisType.xlValue).LogBase = 10
 
End With
 
chartPage.HasTitle = True
    chartPage.ChartTitle.Characters.Text = "TENSIÓN MENSUAL"
    chartPage.ChartTitle.Position = XlChartElementPosition.xlChartElementPositionAutomatic
 
    chartPage.HasLegend = True
    chartPage.Legend.Position = XlLegendPosition.xlLegendPositionRight
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar