1
我正在開發一個基於Excel的模擬器,運行1000次特定測試。每個測試的結果是兩個座標。這些座標寫入一個範圍。然後,我根據該範圍創建一個X-Y散點圖。如何在VBA/Excel中將散點圖上的點的顏色作爲點X,Y座標的函數進行變化?
我現在想要做的是循環遍歷圖的1000個點,並根據點的X和Y座標改變點的顏色。具體來說,我想要使用X Mod(Half Max X)和Y Mod(Half Max Y),以便創建顏色強度將隨着圖形中間附近的點而增加的效果。
我想使用的代碼如下:
Temp = "'" + FirstCalcs.Name + "'!" + FirstCalcs.Cells(SOWD + 3, 2).Address + ":" + FirstCalcs.Cells(SOWD + 3, NumOfTests + 1).Address
Temp2 = "'" + FirstCalcs.Name + "'!" + FirstCalcs.Cells(SOWD + 4, 2).Address + ":" + FirstCalcs.Cells(SOWD + 4, NumOfTests + 1).Address
Set chtChart = Charts.Add
With chtChart
Do Until .SeriesCollection.Count = 1 ' remove extra series, which Excel spawns like rabbits, for some reason
.SeriesCollection(1).Delete
Loop
.Name = Institution + " summary"
.ChartType = xlXYScatter
'Link to the source data range.
'.SetSourceData Source:=FirstCalcs.Range(Temp)
.SeriesCollection(1).Values = Temp2
.SeriesCollection(1).XValues = Temp
For Each pts In .SeriesCollection(1).Points
.Format.Fill.Solid
'The next line is what I can't figure out
.MarkerBackgroundColor = RGB(XFunctionOf(.pts.XCoor), YFunctionOf(.pts.YCoor), 128)
.MarkerStyle = xlMarkerStyleDiamond
.MarkerSize = 10
End With
Next i
.HasTitle = True
.ChartTitle.Text = "Summary"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "T"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Time before T achieved"
.HasLegend = False
End With
但是我不能工作了一種方式來獲得x和y的值,以便對他們進行必要的功能。我可以根據點本身的數量(1到1000)來改變顏色,但這不是我想要做的 - 顏色是每個點的X,Y座標的函數。值得一提的是,X和Y座標的範圍是可變的,即測試不會返回每次都在相同比例下的結果。
任何幫助將非常感激,並提前感謝您。
感謝這個,蒂姆。讓我玩一玩,看看我能不能做這件事。隔夜,我還打開使用打開數據標籤,提取文本和分裂它(不優雅,我意識到),但我還沒有想出如何打開X和Y標籤。我會先把你的(看起來更簡單)。一旦我得到它的工作,我會發布我的解決方案。再次感謝Marc。 – user2723257
完美工作,並使用http://www.mcpher.com/Home/excelquirks/snippets/heatmap,我有一個很好的結果。 – user2723257