den här artikeln visar hur lätt det är att skapa ett scatter-diagram med sitt plotområde uppdelat horisontellt och vertikalt i fyra regioner. Regionerna är åtskilda av diagramaxlarna, och dessa axlar kan placeras där det behövs för att avgränsa kvadranterna.
jag har skrivit en handledning som visar hur man skapar ett Excel-diagram med färgad Kvadrantbakgrund, vilket var mer komplicerat, eftersom det använde staplade områden och sekundära axlar för att få den färgade bakgrunden. Detta är mycket enklare att skapa och underhålla, och tjänar ungefär samma syfte.
här är provet X och Y data, med beräknade medelvärden, och den initiala XY scatter diagram. Vi kommer att placera axlarna vid respektive medelvärden för X-och Y-data, men du kan placera dem varhelst det är vettigt i din analys.
vi måste flytta axlarna i detta diagram. Dubbelklicka på den horisontella axeln eller välj den horisontella axeln och tryck på Ctrl+1 (siffra en) för att öppna åtgärdsfönstret Formatera axel (visas här, Excel 2013) eller formatera Axeldialogruta (fungerar ungefär samma i tidigare Excel-versioner). Under Axelalternativ >vertikala Axelkorsningar väljer du alternativet Axelvärde och anger X-genomsnittet i rutan, som visas.
resultatet visas nedan till vänster. Upprepa för den vertikala axeln, nedanför höger.
dessa axeletiketter är helt i vägen, men det är lätt att flytta dem. Formatera varje axel (öppna åtgärdsfönstret eller dialogrutan som ovan) och under etiketter > Etikettposition väljer du låg i rullgardinsmenyn.
nu är dessa etiketter längs kanterna på diagrammet, där de gör mer nytta än skada (nedan till vänster). Du kan göra en liten mängd formatering för att göra kvadranterna sticker ut lite tydligare. I diagrammet nedan till höger har jag använt en ljusare grå nyans för rutlinjerna, och jag har använt en mörkare färg, i själva verket samma färg som markörerna, för axellinjens färg.
det är lätt att använda VBA för att placera axlar och axeletiketter, med hjälp av en enkel rutin som den som visas nedan. Denna rutin placerar etiketterna och använder sedan medelvärdena som beräknats i kalkylbladet för att placera axellinjerna.
Sub AxesAsQuadBoundaries1() With ActiveChart With .Axes(xlCategory) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = ActiveSheet.Range("A17").Value2 End With With .Axes(xlValue) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = ActiveSheet.Range("B17").Value2 End With End WithEnd Sub
nästa rutin hoppar över kalkylbladets beräkningar, istället tar medelvärdena för X-och Y-värdena som plottas i diagrammet för att placera axellinjerna.
Sub AxesAsQuadBoundaries2() Dim vData As Variant With ActiveChart vData = .SeriesCollection(1).XValues With .Axes(xlCategory) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With vData = .SeriesCollection(1).Values With .Axes(xlValue) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With End WithEnd Sub
du kan även använda kalkylbladshändelser för att flytta diagramaxlarna. Mina X-och Y-värden beräknades med =RANDBETWEEN(2,14)
, så när kalkylbladet beräknar (t.ex. genom att trycka på funktionsknappen F9) ändras värdena. Jag kan utnyttja denna beräkning händelse enligt följande.
- högerklicka på fliken kalkylblad och välj Visa kod från popup-menyn. VB-redigeraren öppnas med en kodmodul som motsvarar kalkylbladet.
- Välj kalkylblad från den vänstra rullgardinsmenyn högst upp i modulen ny kod.
- Välj beräkna från den högra rullgardinsmenyn.
- ange koden som visas.
här är koden så att du inte behöver skriva allt själv. Kopiera och klistra in i kalkylbladets kodmodul.
Private Sub Worksheet_Calculate() Dim vData As Variant With Me.ChartObjects(1).Chart vData = .SeriesCollection(1).XValues With .Axes(xlCategory) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With vData = .SeriesCollection(1).Values With .Axes(xlValue) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With End WithEnd Sub
beroende på detaljerna i din kalkylbladsmodell kan du använda Worksheet_Calculate
, Worksheet_Change
, Worksheet_PivotTableUpdate
, eller andra händelseprocedurer för att uppdatera diagrammet.