¿es posible crear un gráfico (por ejemplo, gráfico de línea de eje Y doble) no desde rangos, sino desde datos de matriz? ¿Si es así, cómo?Crear gráfico a partir de datos de matriz y no en el rango
Respuesta
Sí. Puede asignar matrices a las propiedades XValues
y Values
de un objeto Series
en un gráfico. Ejemplo:
Dim c As Chart
Dim s As Series
Dim myData As Variant
Set c = ActiveChart ' Assumes a chart is currently active in Excel...
Set s = c.SeriesCollection(1)
myData = Array(9, 6, 7, 1) ' or whatever
s.Values = myData
Puede asignar matrices para trazar la serie en Excel 2007 en adelante, pero en versiones anteriores Creo que hay un límite de 255 caracteres para la longitud de cada serie. Un método que he utilizado para evitar esta restricción se muestra en el siguiente ejemplo de paseo aleatorio:
Sub ChartArray()
Dim x(0 To 1000, 0 To 0) As Double
Dim y(0 To 1000, 0 To 0) As Double
x(0, 0) = 0
y(0, 0) = 0
For i = 1 To 1000
x(i, 0) = i
y(i, 0) = y(i - 1, 0) + WorksheetFunction.NormSInv(Rnd())
Next i
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
With ActiveChart.SeriesCollection
If .Count = 0 Then .NewSeries
If Val(Application.Version) >= 12 Then
.Item(1).Values = y
.Item(1).XValues = x
Else
.Item(1).Select
Names.Add "_", x
ExecuteExcel4Macro "series.x(!_)"
Names.Add "_", y
ExecuteExcel4Macro "series.y(,!_)"
Names("_").Delete
End If
End With
ActiveChart.ChartArea.Select
End Sub
Un método alternativo es asignar nombres a las matrices (similares a solución anterior) y luego configurar la serie para referirse a los nombres asignados. Esto funciona bien en todas las versiones siempre que guarde en formato xls, pero parece haber una limitación de longitud para las matrices con nombre de 8192 caracteres al guardar en los nuevos formatos xlsx/xlsm/xlsb.
Por curiosidad, ¿el truco 'ExecuteExcel4Macro' no funciona en 2007 y más tarde? Lo probó en Excel 2007 y el cuadro no contiene datos. –
No parece que los antiguos comandos de Excel 4 funcionen en los gráficos en versiones posteriores, lo cual es molesto. –
Ok, gracias. +1 para el enfoque interesante/horrible! –
- 1. Cómo crear una matriz Haskell a partir de una función
- 2. Cómo crear un gráfico de barras apiladas a partir de datos resumidos en ggplot2
- 3. ¿Crear imagen a partir de datos RGB?
- 4. Crear un hash a partir de una matriz de claves
- 5. conceptos básicos mapply? - cómo crear una matriz a partir de dos vectores y una función
- 6. Crear dinámicamente pruebas PHPUnit a partir del archivo de datos
- 7. Actualización de enlaces en un gráfico dirigido por fuerza a partir de datos de json dinámicos
- 8. Crear una matriz a partir de propiedades de objetos en otra matriz
- 9. Crear una matriz de combinaciones únicas a partir de una matriz de cadenas
- 10. Crear objeto lm a partir de datos/coeficientes
- 11. ¿Cómo puedo crear un polígono lleno a partir de datos de borde no ordenados en MATLAB?
- 12. ¿Cómo construyes un gráfico a partir de un marco de datos usando el paquete igraph?
- 13. ¿Cómo puedo crear una matriz a partir de los valores de la clave de otra matriz?
- 14. Crear una matriz diagonal dispersa a partir de la fila de una matriz dispersa
- 15. PHP: Crear una matriz para un rango
- 16. Crear un rango de cadenas a partir de los valores finales
- 17. Crear un rango de fechas
- 18. Cómo crear una matriz a partir de un archivo CSV utilizando PHP y la función fgetcsv
- 19. Crear archivo inicial a partir de datos que ya están en la base de datos
- 20. Exportación/importación de un gráfico jerárquico a partir de una base de datos
- 21. Manera pitónica de crear una matriz numpy a partir de una lista de matrices numpy
- 22. Crear URL a partir de una cadena
- 23. gráfico 3D de contorno a partir de datos utilizando Mayavi/Python
- 24. ¿Puede crear automáticamente un gráfico de objetos a partir de objetos planos?
- 25. Generando dendrogramas a partir de datos genealógicos en R
- 26. Crear una matriz a partir de un archivo CSV utilizando el objetivo C
- 27. ¿Cómo puedo crear un histograma a partir de datos agregados en R?
- 28. Crear video a partir de imágenes
- 29. Leer el rango de bits de la matriz de bytes
- 30. Cómo crear mediante programación un Java ResultSet a partir de datos personalizados sin base de datos
posible duplicado de [Para establecer los datos dinámicos del gráfico de Excel en el tiempo de ejecución y no Excel.Range] (http://stackoverflow.com/questions/7380266/to-set-dynamic-data-of-excel-chart-at -runtime-and-not-excel-range) – assylias
@assylias: Ese no es un duplicado obvio ... El lenguaje es C#, no VBA. Los conceptos son prácticamente los mismos, pero un ejemplo resuelto no se verá del todo igual. –
@assylias Además, no vi la otra pregunta como realmente respondida – brettdj