1. Manualmente en Excel (GUI)
* Este es el más simple, si está trabajando directamente dentro de la aplicación Excel.
1. Crea el gráfico: Seleccione los datos que desea trazar. Vaya a la pestaña "Insertar" y elija el tipo de gráfico que desee (por ejemplo, columna, pastel, línea). El gráfico aparecerá inicialmente incrustado en la hoja actual.
2. Mueva el gráfico a una nueva hoja:
* Método 1 (haga clic con el botón derecho): Haga clic derecho en el área del gráfico. Elija "Mover gráfico ...".
* Método 2 (pestaña Diseño de gráfico): Seleccione el gráfico. La pestaña "Diseño del gráfico" aparecerá en la cinta. Haga clic en el botón "Mover gráfico" (generalmente ubicado en el lado derecho).
3. Mueve el cuadro de diálogo del gráfico: En el cuadro de diálogo "Mover gráfico", seleccione "Nueva hoja:" y opcionalmente le da un nombre a la hoja. Haga clic en "Aceptar".
2. VBA (Visual Basic para aplicaciones)
* Este método se utiliza cuando desea automatizar la creación y ubicación del gráfico utilizando el código VBA dentro de su libro de trabajo de Excel.
`` `VBA
Sub CreateChartonnewsheet ()
Dim CHT como gráfico
Dim rng como rango
Dim Newsht como hoja de trabajo
'Defina el rango de datos
Establecer rng =thisworkbook.sheets ("sheet1"). Range ("a1:b10") 'Ajuste el nombre y el rango de la hoja
'Crea una nueva hoja de trabajo para mantener el gráfico
Establecer newsht =thisworkbook.sheets.add (después:=thisworkbook.sheets (thisworkbook.sheets.count)) 'Agrega la hoja al final
'Alternativamente, agregue la hoja al principio:
'Set newsht =thisworkbook.sheets.add (antes:=thisworkbook.sheets (1))
'Crea el gráfico en la nueva hoja
Establecer cht =gráficos.add
Con cht
.ChartType =xlColumnClustered 'Ajustar el tipo de gráfico
.SetSourcedata Fuente:=RNG
.Location donde:=xllocationAsnewsheet, nombre:=newsht.name 'establecer ubicación
.Haslegend =verdadero 'Ejemplo:incluir una leyenda
.Charttitle.text ="My Chart Title" 'Ejemplo:Establecer el título
'Se pueden agregar opciones de personalización adicionales del gráfico aquí
Terminar con
'Opcional:cambie el nombre de la nueva hoja (ya realizada arriba a través de la ubicación)
'Newsht.name ="MyChartsheet"
'Opcional:active la hoja de gráfico
Martillo
'Limpiar variables de objetos
Establecer cht =nada
Establecer rng =nada
Establecer newsht =nada
Final
`` `` ``
* Explicación:
* `Dim CHT como gráfico ':declara una variable para mantener el objeto del gráfico.
* `Dim RNG AS Range`:declara una variable para mantener el rango de datos.
* `Dim Newsht as Worksheet ':declara una variable para contener la nueva hoja de trabajo.
* `Establecer rng =thisworkbook.sheets (" Sheet1 "). Range (" A1:B10 ")`:Define el rango de datos que se utilizará para el gráfico. IMPORTANTE:Cambie `" Hoja1 "` y `" A1:B10 "` a su nombre de hoja real y rango de datos.
* `Set newsht =thisworkbook.sheets.add (después:=thisworkbook.sheets (thisworkbook.sheets.count))`:Agrega una nueva hoja de trabajo * después de * la última hoja en el libro de trabajo. Puede usar `antes:=thisworkbook.sheets (1)` para agregarlo como la hoja * primero *.
* `Establecer cht =gráfico.add`:crea un nuevo objeto de gráfico. Esto es clave. `Charts.Add` crea una tabla en la colección * Chartobjects *.
* `.ChartType =xlColumnClustered`:Establece el tipo de gráfico. Use la constante `xlchartType` apropiada (por ejemplo,` xlline`, `xlpie`,` xlBarClustered`).
* `.SetSourcedata Fuente:=Rng`:Establece la fuente de datos para el gráfico.
* `.Location donde:=xllocationAsnewsheet, nombre:=newsht.name`:Esta es la línea crucial. Mueve la tabla a una nueva hoja.
* `Where:=xllocationAsnewsheet`:Especifica que el gráfico debe colocarse en una nueva hoja.
* `Nombre:=Newsht.Name`:Establece el nombre de la nueva hoja al nombre del gráfico.
* Consideraciones importantes para VBA:
* Manejo de errores: Agregue el manejo de errores (por ejemplo, `Error Goto Goto ErrorHandler`) para que su código sea más robusto. ¿Qué sucede si la hoja especificada no existe o el rango no es válido?
* Variables de objeto: Siempre limpie las variables de su objeto estableciéndolas en `nada '(como se muestra) para liberar la memoria.
* Personalización del gráfico: Las líneas `.Charttitle.Text`,` .Haslegend`, etc. son solo ejemplos. VBA ofrece amplias opciones para personalizar cada aspecto de un gráfico (ejes, etiquetas, formateo de series, etc.). Explore el modelo de objeto VBA de Excel para gráficos.
* Seguridad: Si su libro de trabajo contiene código VBA, es probable que deba guardarlo como un libro de trabajo Macro habilitado ('.xlsm`). Los usuarios también deberán habilitar las macros en Excel.
3. Python con pandas y openpyxl (o xlsxwriter)
* Esto se usa cuando trabaja con datos en Python y desea crear gráficos de Excel.
`` `Python
importar pandas como PD
importar openpyxl
Desde OpenPyxl Import Workbook
Desde OpenPyxl.Chart Import Barchart, referencia, serie
# Crear algunos datos de muestra
data ={'categoría':['a', 'b', 'c', 'd'],
'Valor':[10, 15, 13, 18]}
df =pd.dataframe (datos)
# Cree un escritor de Pandas Excel que use OpenPyxl como motor
Writer =Pd.excelwriter ("Chart_example.xlsx", Engine ='OpenPyxl')
# Escriba el marco de datos en una hoja llamada 'Datos'
df.to_excel (escritor, sheet_name ='data', index =false)
# Obtenga el libro de trabajo y los objetos de la hoja de trabajo
Libro de trabajo =escritor.book
Hoja de trabajo =escritor.sheets ['Data']
# Crea un barchart
gráfico =barChart ()
chart.type ="col"
Chart.style =10
chart.title ="Ventas por categoría"
Chart.y_axis.title ='valor'
Chart.x_axis.title ='Categoría'
# Defina el rango de datos (excluyendo la fila de encabezado)
data_range =reference (Worksheet, min_col =2, min_row =2, max_col =2, max_row =len (datos ['categoría']) + 1) #column B (valores), salto encabezado
categorías =referencia (hoja de trabajo, min_col =1, min_row =2, max_col =1, max_row =len (data ['categoría']) + 1) #column a (categorías), omitir el encabezado
# Agregue la serie de datos al gráfico
serie =series (data_range, title_from_data =false) #use .title ="" para establecer manualmente el título
Chart.append (serie)
Chart.set_categories (categorías)
# Crea una nueva hoja de trabajo para el gráfico
Chart_sheet =Workbook.Create_Sheet ("gráfico")
# Agregue el gráfico a la nueva hoja
chart_sheet.add_chart (gráfico, "A1") # Ajuste la posición de la celda según sea necesario
# Guarde el archivo de Excel
Writer.Close ()
print ("Excel File 'Chart_example.xlsx' creado con gráfico en una nueva hoja").
`` `` ``
* Explicación:
1. Importar bibliotecas: Importar `pandas`,` openpyxl` y los módulos necesarios de `openpyxl.chart`. Asegúrese de tener estas bibliotecas instaladas (`Pip Instale Pandas OpenPyxl`).
2. Crear datos (pandas): Cree sus datos utilizando Pandas Dataframes.
3. Crear escritor de Excel: Cree un objeto `pd.excelwriter`, especificando` openpyxl` como el motor. Esto le permite usar la funcionalidad `OpenPyXL` para crear el gráfico.
4. Escribir datos en la hoja: Escriba el marco de datos en una hoja en el archivo de Excel.
5. Obtener objetos de Libro de trabajo y hoja de trabajo: Acceda a los objetos `Workbook` y` hoja de trabajo 'desde el `Excelwriter`.
6. Crear gráfico: Cree un objeto de gráfico (por ejemplo, `Barchart`).
7. Definir rangos de datos (referencia): Use objetos `OpenPyxl.chart.Reference` para definir el rango de datos para el gráfico. Preste atención cuidadosa a los parámetros `min_col`,` min_row`, `max_col` y` max_row`.
8. Crear serie: Cree un objeto `Serie` desde el rango de datos. La `series` representa los puntos de datos que se trazarán.
9. Serie de apagado para registrar: Agregue el `series` al` gráfico '.
10. Establecer categorías Establecer las categorías
11. Crea una nueva hoja: Cree una nueva hoja de trabajo para el gráfico usando `Workbook.Create_Sheet (" Chart ")`. El nombre de la nueva hoja es "Gráfico".
12. Agregar gráfico a la hoja: Use `Chart_sheet.add_chart (gráfico," A1 ")` para agregar el gráfico a la nueva hoja. El argumento `" A1 "` especifica la celda superior izquierda donde se colocará el gráfico. Ajuste esto según sea necesario.
13. Guardar libros de trabajo: Guarde el archivo de Excel usando `Writer.Close ()`.
* Puntos clave para Python:
* Bibliotecas: * Debe * instalar las bibliotecas necesarias:`PIP instale Pandas Openpyxl` (o` Pip Instale XLSXWriter` si elige ese motor).
* OpenPyxl vs. XLSXWriter:
* `OpenPyxl`:puede leer y escribir archivos de Excel existentes. Más flexible para formateo complejo.
* `XLSXWriter`:Excelente para crear * nuevos * archivos de Excel, especialmente los grandes. A menudo más rápido que `openpyxl` para escribir. Sin embargo, no puede modificar los archivos existentes. La principal diferencia para este problema es que `XLSXWriter` solo puede crear gráficos en la hoja donde están los datos.
* Rangos de datos: Los objetos de `referencia 'son cruciales. Asegúrese de que los valores `min_col`,` min_row`, `max_col` y` max_row` sean correctos para sus datos. Recuerde que las columnas y las filas de Excel están basadas en 1, no basadas en 0 como listas de Python.
* Personalización del gráfico: `OpenPyXL` y` XLSXWriter` tienen amplias opciones para personalizar cuadros (títulos, ejes, colores, etiquetas, etc.). Consulte su documentación.
En resumen:
* Si lo está haciendo manualmente en Excel, el diálogo "Mover gráfico" es el más fácil.
* Si está automatizando con VBA, la propiedad '.Location` es clave.
* Si está utilizando Python, `OpenPyxl` y` XLSXWriter` requieren más código, pero le brindan potentes opciones de personalización de gráficos. Se requiere `OpenPyXL` al modificar un archivo de Excel existente.
Elija el método que mejor se adapte a sus necesidades y al entorno en el que está trabajando. Asegúrese de ajustar los ejemplos de código para que coincidan con sus datos específicos, los nombres de las hojas y el tipo de gráfico deseado. Recuerde instalar las bibliotecas necesarias si usa Python.