Desde hace algún tiempo, hemos estado investigando bien cómo crear un gráfico vectorial en Excel. Pensamos que es un desafío interesante y podría ser útil para muchos usuarios. Con las herramientas de Excel, puedes crear gráficas de vectores en blanco y negro o a color. El proceso es un poco tedioso, pero lo explicaremos paso a paso para que lo hagas siguiendo el tutorial.
Debes tomar en cuenta que se trata de comandos, por lo que debes trabajar con total exactitud. Si te equivocas en un solo elemento, el procedimiento no se realizará de forma correcta y no podrás obtener la gráfica deseada. Sin mediar más palabras, sigue tu lectura para comenzar con la creación de tu gráfico.
Quizás te puede interesar: Trazar Una Ecuación En Un Gráfico De Excel
Cómo crear un gráfico vectorial en Excel
Hay varios procedimientos involucrados al momento de crear un gráfico vectorial en Excel, a continuación explicaremos todo en detalle:
1. Crear los datos vectoriales si no los tienes
En nuestro caso, no teníamos datos vectoriales a mano, así que tuvimos que inventar algunos. Para este ejercicio nuestro campo vectorial estará definido por lo siguiente:
El primer paso es definir la cuadrícula para el campo vectorial. Elegimos una cuadrícula espaciada uniformemente con dimensiones de 0,3 x 0,3. También decidimos, por simplicidad, colocar las colas de cada vector, en lugar del punto medio, en la cuadrícula. Entonces, el primer paso fue crear dos columnas para los valores “x1” y “y1”, o la posición de las colas de cada vector.
En las columnas inmediatamente al lado de “x1” y “y1”, creamos las columnas “x2” y “y2”. Estos puntos serán el extremo de la cabeza o flecha de los vectores. La cabeza del vector debe ubicarse en la posición x1+fx y y1+fy. Pero esta posición absoluta hace que los vectores sean muy grandes en relación con el espaciado de la cuadrícula.
Por lo general, en una gráfica vectorial, lo que nos importa es el tamaño relativo de los vectores comparados entre sí. Para abordar esto, agregamos un factor de escala en el cálculo de “x2” y “y2”. Un valor de 0,1 funcionó bien en este caso. La fórmula para x2 se muestra a continuación.
Si estuviéramos tratando de hacer un gráfico vectorial a partir de datos existentes, podríamos agregar otra columna para multiplicar los datos por un factor de escala. Ahora que tenemos cuatro columnas de valores que definen completamente los vectores, podemos crear un gráfico vectorial en Excel.
2. Creación de un gráfico vectorial en Excel
El gráfico vectorial está hecho del tipo de gráfico de dispersión en Excel. Entonces, comenzamos insertando uno en blanco en la hoja de trabajo.
Cada vector estará representado por una serie de datos. Para comenzar a completar el gráfico, hacemos clic derecho sobre él y elegimos «Seleccionar datos» en el menú. A continuación, agregamos la nueva serie seleccionando la primera fila de valores “x1” y “x2” como «Valores X de serie» y la primera fila de valores “y1” y “y2” como «Valores Y de serie«.
Luego, agregamos una punta de flecha al vector cambiando su formato. Primero seleccionamos la serie de datos, luego navegamos a la pestaña Herramientas de gráfico> Formato para agregar la punta de flecha.
Mira También Calcular Seno Y Coseno En Excel. Fórmulas Y Ejemplos
Ahora tenemos algo que parece un vector en nuestro gráfico. También hicimos que el área de la trama fuera cuadrada para que no sesgue los vectores.
Todo lo que queda es repetir este proceso para cada vector. Fácil, ¿verdad? Tenemos mejores cosas pendientes que hacer clic en los botones todo el día para agregar todos los vectores individuales a este gráfico. ¡Suponemos que tú también! Entonces, hagámoslo un poco más inteligentemente, ¿de acuerdo?
3. Uso de VBA para agregar series de datos a un gráfico de dispersión de Excel
En lugar de agregar cada vector manualmente haciendo clic en los botones de Excel, podemos crear una subrutina para agregar cada serie. El VBA para la subrutina está a continuación:
Esto es lo que hace la subrutina:
Mira También Cómo Recuperar Un Archivo Excel No Guardado- Activa el gráfico (el nuestro se llamaba «Chart7») y selecciona el área de trazado.
- Inicia un ciclo «For» para recorrer cada una de las 49 filas de valores.
- Define los valores de x como las celdas de la fila actual y las columnas C y D como una cadena que se puede introducir en el gráfico de dispersión.
- Define los valores y las celdas en la fila actual y las columnas E y F.
- Agrega una nueva serie al gráfico usando los valores x y los valores y
- Luego formatea la serie recién agregada.
- Añade la punta de flecha.
- Por último, pasa a la siguiente fila, hasta completar las 49.
El resultado, después de quitar las etiquetas de los ejes y ajustar los límites, es este:
Parece una trama vectorial, ¿no? Cada fila de valores “x” y “y” de la tabla se representa como un vector, con la cola de cada vector alineada con la cuadrícula predefinida. Para hacer un gráfico vectorial de modo que el punto medio del vector esté en la cuadrícula, necesitamos indudablemente definir un tercer punto para cada vector.
¿QUE SIGUE?
Queremos mejorar el gráfico vectorial agregando una escala de color para que el color de los vectores cambie con su magnitud. Básicamente, los vectores más pequeños serán azules y los más grandes, rojos. Esto implicará una interpolación lineal con valores RGB, como se muestra a continuación:
NOTA:
Este método solo funcionará para gráficos vectoriales en los que el número de vectores sea inferior a 255 debido a la limitación de la serie de gráficos de Excel. Solo se permiten 255 series de datos por gráfico.
Tal vez quieras conocer: 6 Mejores Programas Para Resolver Ecuaciones
Cómo crear un gráfico vectorial coloreado en Excel
Anteriormente mostramos cómo usar VBA para crear un gráfico vectorial en Excel. Esa trama era solo una simple trama vectorial en blanco y negro. Entonces, en este apartado, te mostraremos cómo llevar ese gráfico al siguiente nivel con una escala de colores para indicar la magnitud de los vectores, como la siguiente:
El concepto básico para crear el gráfico vectorial en Excel que tenga diversos coloreado es este:
- Paso 1: define un degradado que se utilizará para colorear los vectores.
- Paso 2: determina la magnitud de cada uno de los vectores.
- Paso 3: encuentra las magnitudes mínima y máxima.
- Paso 4: calcula la magnitud porcentual relativa de cada vector (mínimo = 0%, máximo = 100%)
- Paso 5: interpola en el gradiente para encontrar el porcentaje de rojo, verde y azul para el vector.
- Paso 6: traza el vector en el gráfico.
- Paso 7: aplica el formato al vector, incluido el color.
Como probablemente hayas adivinado, todos estos pasos (excepto 1) se llevaron a cabo en VBA. Revisaremos cada uno a continuación.
Definición del gradiente
Excel hace que sea fácil jugar con degradados y encontrar el que te gusta. Acabamos de crear un rectángulo en la hoja de trabajo, luego lo rellenamos con un degradado personalizado con paradas en 0 % (rojo), 33 % (amarillo), 66 % (verde) y 100 % (azul).
Luego, convertimos eso en una tabla de valores RGB vs. porcentaje. Queríamos que el 0 % (o los valores más pequeños) fueran azules y el 100 % (o los valores más grandes) fueran rojos. Los valores RGB son números enteros entre 0 y 255.
Más tarde, interpolamos en VBA según la magnitud relativa del vector (de 0 a 100 %), por lo que también nombramos cada columna («legendx», «legendr», «legendg», «legendb») para facilitar la interpolación. Con el degradado definido, entremos en VBA:
Cálculo de magnitudes vectoriales, mínimo, máximo en vba
Después de definir el número total de vectores (numvect) e inicializar las variables, «minvmag» y «maxvmag», el siguiente código recorre las filas de datos para calcular la magnitud de cada vector, «vmag». También almacena cada una de las magnitudes en un arreglo. Esta matriz se usará más adelante cuando coloreemos el vector con el tono apropiado según el degradado que definimos. Finalmente, el valor actual de vmag se compara con maxvmag y minvmag. Si es mayor que maxvmag, se actualiza el valor de maxvmag. Si es menor que minvmag, se actualiza el valor de minvmag.
numvect = 196
minvmag = 1000000
maxvmag = 0
ReDim vmagarray(1 To numvect)
For j = 1 To numvect
x1 = Cells(4 + j, 2)
x2 = Cells(4 + j, 3)
y1 = Cells(4 + j, 5)
y2 = Cells(4 + j, 6)
vmag = Sqr((x1 – x2) ^ 2 + (y1 – y2) ^ 2)
vmagarray(j) = vmag
If vmag > maxvmag Then
maxvmag = vmag
ElseIf vmag < minvmag Then
minvmag = vmag
End If
Next j
Calcula la magnitud porcentual relativa de cada vector
Con las magnitudes de cada vector, así como el mínimo y el máximo definidos, podrías pasar a trazar cada vector con un bucle For (For i = 1 to numvect). Dentro del ciclo, tuvimos que normalizar los vectores entre 0 y 1, para poder aplicar el gradiente definido anteriormente. La siguiente ecuación se encarga de eso:
relvmag = (vmagarray(i) – minvmag) / (maxvmag – minvmag)
Interpolando para obtener el color de cada vector
La magnitud relativa del vector podría ser cualquier valor entre 0 y 1, por lo que necesitábamos interpolar de la tabla anterior para encontrar el color correcto para aplicar al vector. Usamos una función de interpolación lineal simple (LinInterp) que creamos anteriormente para manejar esto. Y como los valores RGB son números enteros, tuvimos que redondear el resultado de la interpolación para obtener el valor final.
red = Round(LinInterp(relvmag, Range(«legendx»), Range(«legendr»)))
grn = Round(LinInterp(relvmag, Range(«legendx»), Range(«legendg»)))
blu = Round(LinInterp(relvmag, Range(«legendx»), Range(«legendb»)))
Trazar el vector
El VBA para trazar el vector como una serie y formatearlo como una flecha es el mismo que antes:
xvalues = «=Sheet1!$B$» & i + 4 & «:$C$» & i + 4
yvalues = «=Sheet1!$E$» & i + 4 & «:$F$» & i + 4
‘add the series to the chart
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(i).xvalues = xvalues
ActiveChart.FullSeriesCollection(i).Values = yvalues
With Selection.Format.Line
.EndArrowheadLength = msoArrowheadLengthMedium
.EndArrowheadWidth = msoArrowheadWidthMedium
.EndArrowheadStyle = msoArrowheadTriangle
Aplicar un color al vector
Finalmente, usamos los valores RGB interpolados (variables “red”, “grn”, “blu”) en el ciclo With para colorear los vectores:
.ForeColor.RGB = RGB(red, grn, blu)
La subrutina completa de vba para crear un gráfico vectorial coloreado
A continuación se muestra la subrutina completa para crear el gráfico vectorial coloreado en Excel. Debes seguirla de forma exacta (sin obviar ningún detalle), para evitar errores en el proceso:
Sub add_vector()
Dim xvalues As String
Dim yvalues As String
Dim numvect As Integer
Dim vmagarray() As Double
Dim minvmag As Double
Dim maxvmag As Double
Dim red As Integer
Dim grn As Integer
Dim blu As Integer
numvect = 196
‘find the minimum and maximum vector magnitudes
‘(these need to be defined before plotting)
‘store the vector magnitudes in an array for later use
minvmag = 1000000
maxvmag = 0
ReDim vmagarray(1 To numvect)
For j = 1 To numvect
x1 = Cells(4 + j, 2)
x2 = Cells(4 + j, 3)
y1 = Cells(4 + j, 5)
y2 = Cells(4 + j, 6)
vmag = Sqr((x1 – x2) ^ 2 + (y1 – y2) ^ 2)
vmagarray(j) = vmag
If vmag > maxvmag Then
maxvmag = vmag
ElseIf vmag < minvmag Then
minvmag = vmag
End If
Next j
‘activate the chart and select the plot area
ActiveSheet.ChartObjects(«Chart 7»).Activate
ActiveChart.PlotArea.Select
For i = 1 To numvect
‘determine the relative percent magnitude of the vector
‘(w.r.t. the minimum and maximum vectors)
relvmag = (vmagarray(i) – minvmag) / (maxvmag – minvmag)
‘interpolate to find the % of red, green, and blue
red = Round(LinInterp(relvmag, Range(«legendx»), Range(«legendr»)))
grn = Round(LinInterp(relvmag, Range(«legendx»), Range(«legendg»)))
blu = Round(LinInterp(relvmag, Range(«legendx»), Range(«legendb»)))
‘define the xvalues and yvalues for the chart
xvalues = «=Sheet1!$B$» & i + 4 & «:$C$» & i + 4
yvalues = «=Sheet1!$E$» & i + 4 & «:$F$» & i + 4
‘add the series to the chart
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(i).xvalues = xvalues
ActiveChart.FullSeriesCollection(i).Values = yvalues
ActiveChart.FullSeriesCollection(i).Select
‘apply formatting to the series
With Selection.Format.Line
.EndArrowheadLength = msoArrowheadLengthMedium
.EndArrowheadWidth = msoArrowheadWidthMedium
.EndArrowheadStyle = msoArrowheadTriangle
.ForeColor.RGB = RGB(red, grn, blu)
End With
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
Next i
End Sub
Echa un vistazo a: Los 7 Mejores Programas Para Graficar.
Pensamientos finales
Crear un gráfico vectorial en Excel es un poco complejo, sea en blanco y negro o a color, puesto que hay muchos factores involucrados, comenzando por el cálculo. No obstante, siempre es divertido ver cómo podemos ampliar los límites de Excel para hacer algo nuevo. Esperamos que te haya gustado el tutorial y hayas podido aplicarlo en el trabajo que tenías en mente. Siempre puedes expresar tus opiniones a través de la sección de comentarios. Estaremos siempre por aquí para seguir disipando tus temas con respecto a Excel y otras herramientas indispensables, así que visítanos pronto.
Me llamo Javier Chirinos y soy un apasionado de la tecnología. Desde que tengo uso de razón me aficioné a los ordenadores y los videojuegos y esa afición terminó en un trabajo.
Llevo más de 15 años publicando sobre tecnología y gadgets en Internet, especialmente en mundobytes.com
También soy experto en comunicación y marketing online y tengo conocimientos en desarrollo en WordPress.