Este dilema se puede resolver de diferentes formas, pero nosotros te compartimos la resolución más completa para nosotros.
Solución:
Tendrá que hacer un poco de trabajo de formateo manual, ya que Excel no tiene el formato numérico que desea.
Puede hacer que el gráfico se vea así con un poco de trabajo:
1 – Formato de número personalizado
Haga clic con el botón derecho en los números de eje, seleccione “formato de eje”, vaya a la sección “número” e ingrese el siguiente formato personalizado:
"10^"#
Haga que sus ejes utilicen este formato personalizado.
Esto agregará el texto “10 ^” al frente de cualquier número mostrado.
2 – Registra tus datos
El formato personalizado de 1) asume que sus datos ya están registrados. Así que necesitamos registrar sus datos y graficarlos en su lugar. Encuentre el registro de cada punto de datos:
Data
X Y Log10(X) Log10(Y)
30 300 1.477121255 2.477121255
28 300 1.447158031 2.477121255
26 300 1.414973348 2.477121255
300 200 2.477121255 2.301029996
280 200 2.447158031 2.301029996
260 200 2.414973348 2.301029996
Haga que su gráfico de parcela tenga las dos columnas de la derecha.
3 – Arregle las líneas de registro
Los gráficos de registro de Excel asumen que las líneas de registro principales deben estar en 1, 10, 100, 1000, etc. Pero desea que sus líneas principales sean 1, 2, 3 porque ya ha registrado sus datos.
Así que necesitamos hacer nuestras propias líneas y formatearlas para que sean líneas grises delgadas.
Primero, elimine las líneas de cuadrícula del gráfico, ya que estamos haciendo las nuestras.
Luego agregue pares de puntos de datos que especifiquen el inicio y el final de cada línea cada 10, 100, 1000, etc., y luego registre los datos. Coloque espacios entre cada par de puntos para romper las líneas y también facilitar la visualización de lo que está sucediendo. Deberías conseguir una tabla como:
Lines
X Y Log(X) Log(Y)
10 10 1.0 1.0
10 100000 1.0 5.0
20 10 1.3 1.0
20 100000 1.3 5.0
30 10 1.5 1.0
30 100000 1.5 5.0
40 10 1.6 1.0
40 100000 1.6 5.0
50 10 1.7 1.0
50 100000 1.7 5.0
60 10 1.8 1.0
60 100000 1.8 5.0
70 10 1.8 1.0
70 100000 1.8 5.0
80 10 1.9 1.0
80 100000 1.9 5.0
90 10 2.0 1.0
90 100000 2.0 5.0
100 10 2.0 1.0
100 100000 2.0 5.0
200 10 2.3 1.0
200 100000 2.3 5.0
300 10 2.5 1.0
300 100000 2.5 5.0
400 10 2.6 1.0
400 100000 2.6 5.0
500 10 2.7 1.0
500 100000 2.7 5.0
600 10 2.8 1.0
600 100000 2.8 5.0
700 10 2.8 1.0
700 100000 2.8 5.0
800 10 2.9 1.0
800 100000 2.9 5.0
900 10 3.0 1.0
900 100000 3.0 5.0
1000 10 3.0 1.0
1000 100000 3.0 5.0
10 100 1.0 2.0
10000 100 4.0 2.0
10 200 1.0 2.3
10000 200 4.0 2.3
10 300 1.0 2.5
10000 300 4.0 2.5
10 400 1.0 2.6
10000 400 4.0 2.6
10 500 1.0 2.7
10000 500 4.0 2.7
10 600 1.0 2.8
10000 600 4.0 2.8
10 700 1.0 2.8
10000 700 4.0 2.8
10 800 1.0 2.9
10000 800 4.0 2.9
10 900 1.0 3.0
10000 900 4.0 3.0
10 1000 1.0 3.0
10000 1000 4.0 3.0
10 2000 1.0 3.3
10000 2000 4.0 3.3
10 3000 1.0 3.5
10000 3000 4.0 3.5
10 4000 1.0 3.6
10000 4000 4.0 3.6
10 5000 1.0 3.7
10000 5000 4.0 3.7
10 6000 1.0 3.8
10000 6000 4.0 3.8
10 7000 1.0 3.8
10000 7000 4.0 3.8
10 8000 1.0 3.9
10000 8000 4.0 3.9
10 9000 1.0 4.0
10000 9000 4.0 4.0
10 10000 1.0 4.0
10000 10000 4.0 4.0
Agregue las columnas Log (x) y Log (y) como una serie de datos al gráfico, luego formatee la serie de datos para que no muestre puntos, sino líneas grises delgadas.
4 – Etiquetas de eje
- Ya hemos registrado todo, así que cambie los ejes para no registrar los datos; no es necesario que lo registre dos veces.
- Cambie la unidad principal a 1 para obtener etiquetas en cada ciclo de registro.
- Elimine las marcas de graduación mayores y menores, ya que estarán en los lugares incorrectos.
Agregue etiquetas de datos, leyendas, etc., y listo.
Entonces, el enfoque es agregar series ficticias a lo largo de cada eje, en los lugares donde desea una etiqueta de eje. Oculte estos puntos y agregue etiquetas de datos, coloque 101, 102, etc. (para 10 ^ 1, 10 ^ 2, etc.) y formatee el exponente para que sea superíndice. Y esto es complicado de hacer a mano, porque es difícil seleccionar los exponentes y aplicar el formato, entre otras cosas difíciles.
Entonces escribí una pequeña rutina. Seleccione una gráfica de registro-registro con ejes en sus bordes izquierdo e inferior, y ejecute el código a continuación.
Sub NiceExponentialAxisLabels()
Dim cht As Chart
Dim iPt As Long, iLog As Long, iMin As Long, iMax As Long
Dim vXVals As Variant, vYVals As Variant
Dim dFont As Double
Set cht = ActiveChart
' HORIZONTAL AXIS ------------------------------------
cht.Axes(xlCategory).TickLabels.NumberFormat = ";;;" ' hide tick labels
' build arrays of X and Y values
iMin = WorksheetFunction.Log10(cht.Axes(xlCategory).MinimumScale)
iMax = WorksheetFunction.Log10(cht.Axes(xlCategory).MaximumScale)
ReDim vXVals(1 To 1)
ReDim vYVals(1 To 1)
iPt = 0
For iLog = iMin To iMax
iPt = iPt + 1
ReDim Preserve vXVals(1 To iPt)
ReDim Preserve vYVals(1 To iPt)
vXVals(iPt) = 10 ^ iLog
vYVals(iPt) = cht.Axes(xlValue).MinimumScale
Next
' add series, hide points, add and format labels
With cht.SeriesCollection.NewSeries
.Name = "horizontal"
.XValues = vXVals
.Values = vYVals
.Format.Line.Visible = False
.MarkerStyle = xlMarkerStyleNone
.HasDataLabels = True
.DataLabels.Position = xlLabelPositionBelow
For iPt = 1 To .Points.Count
With .DataLabels(iPt)
dFont = .Font.Size
.Text = 10 & WorksheetFunction.Log10(vXVals(iPt))
With .Characters(3, Len(.Text) - 2)
.Font.Superscript = True
.Font.Size = dFont + 2
End With
With .Characters(1, 2)
.Font.Size = dFont
End With
End With
Next
End With
' VERTICAL AXIS ------------------------------------
cht.Axes(xlValue).TickLabels.NumberFormat = "_0_0_0_0_0_0_0" ' hide but maintain margin
' build arrays of X and Y values
iMin = WorksheetFunction.Log10(cht.Axes(xlValue).MinimumScale)
iMax = WorksheetFunction.Log10(cht.Axes(xlValue).MaximumScale)
ReDim vXVals(1 To 1)
ReDim vYVals(1 To 1)
iPt = 0
For iLog = iMin To iMax
iPt = iPt + 1
ReDim Preserve vXVals(1 To iPt)
ReDim Preserve vYVals(1 To iPt)
vXVals(iPt) = cht.Axes(xlCategory).MinimumScale
vYVals(iPt) = 10 ^ iLog
Next
' add series, hide points, add and format labels
With cht.SeriesCollection.NewSeries
.Name = "vertical"
.XValues = vXVals
.Values = vYVals
.Format.Line.Visible = False
.MarkerStyle = xlMarkerStyleNone
.HasDataLabels = True
.DataLabels.Position = xlLabelPositionLeft
For iPt = 1 To .Points.Count
With .DataLabels(iPt)
dFont = .Font.Size
.Text = 10 & WorksheetFunction.Log10(vYVals(iPt))
With .Characters(3, Len(.Text) - 2)
.Font.Superscript = True
.Font.Size = dFont + 2
End With
With .Characters(1, 2)
.Font.Size = dFont
End With
End With
Next
End With
End Sub
Nota: el código se puede copiar desde aquí y pegar en un módulo de código normal. Vea cómo: usar la macro de otra persona en mi blog si no lo ha hecho antes.
A continuación se muestran dos gráficos, el original y el que tiene las bonitas etiquetas exponenciales.
Si guardas algún reparo o disposición de arreglar nuestro post eres capaz de dejar una apostilla y con deseo lo ojearemos.