답변:
Excel에는 원하는 숫자 형식이 없으므로 약간의 수동 서식 작업이 필요합니다.
약간의 작업으로 그래프가 다음과 같이 보일 수 있습니다.
1-사용자 정의 숫자 형식
축 번호를 마우스 오른쪽 버튼으로 클릭하고 "포맷 축"을 선택하고 "숫자"섹션으로 이동 한 후 다음 사용자 정의 형식을 입력하십시오.
"10^"#
축이이 사용자 지정 형식을 사용하도록하십시오.
표시된 숫자 앞에 "10 ^"텍스트가 추가됩니다.
2-데이터를 로그
1)의 사용자 정의 형식은 데이터가 이미 기록되어 있다고 가정합니다. 따라서 데이터를 기록하고 그 대신 그래프를 작성해야합니다. 각 데이터 포인트의 로그를 찾으십시오.
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
플롯 그래프를 오른쪽 두 열로 만듭니다.
3-로그 라인 수정
Excel 로그 플롯은 주요 로그 라인이 1, 10, 100, 1000 등이어야한다고 가정합니다. 그러나 데이터를 이미 기록 했으므로 1, 2, 3에 메이저 라인을 원합니다.
따라서 우리는 우리 자신의 선을 만들고 얇은 회색 선으로 서식을 지정해야합니다.
먼저, 우리가 만들면서 플롯에서 그리드 라인을 제거하십시오.
그런 다음 매 10, 100, 1000 등마다 각 줄의 시작과 끝을 지정하는 데이터 포인트 쌍을 추가 한 다음 데이터를 기록하십시오. 각 점 쌍 사이에 공백을두면 선이 끊어지고 무슨 일이 일어나고 있는지 쉽게 알 수 있습니다. 다음과 같은 테이블을 가져와야합니다.
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
Log (x) 및 Log (y) 열을 데이터 계열로 플롯에 추가 한 다음 점이 아닌가는 회색 선을 표시하도록 데이터 계열의 서식을 지정하십시오.
4-축 레이블
데이터 레이블, 범례 등을 추가하면 완료됩니다.
따라서 접근 방법은 축 레이블을 원하는 위치에 각 축을 따라 더미 시리즈를 추가하는 것입니다. 이 점들을 숨기고 데이터 레이블을 추가하고 101, 102 등 (10 ^ 1, 10 ^ 2 등)을 넣고 지수가 위첨자 형식이되도록 지정하십시오. 그리고 이것은 어려운 일 중에서도 지수를 선택하고 서식을 적용하기가 어렵 기 때문에 손으로해야 할 고통입니다.
그래서 나는 약간의 일상을 썼습니다. 왼쪽 및 아래쪽 가장자리에 축이있는 로그 로그 그림을 선택하고 아래 코드를 실행하십시오.
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
참고 : 여기에서 코드를 복사하여 일반 코드 모듈에 붙여 넣을 수 있습니다. 이 작업을 수행하지 않은 경우 방법 : 내 블로그에서 다른 사람의 매크로 사용을 참조하십시오 .
아래는 두 개의 차트, 원본과 멋진 지수 레이블이있는 차트입니다.