Simple XY Quad Chart Using Axes as Quadrant Boundaries

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.

Fyrdiagram med axlar som Kvadrantgränser

Quad-diagram med axlar som Kvadrantgränser

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.

 Fyrdiagram efter axlar - data och diagram

Quad Chart by Axes-Data och diagram

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.

Formatera axel åtgärdsfönstret-axel korsar vid

format Axis Task Pane-Axis korsar vid

resultatet visas nedan till vänster. Upprepa för den vertikala axeln, nedanför höger.

 Quad diagram av axlar - position axlar

Quad Chart by Axes-Position axlar

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.

åtgärdsfönstret Formatera axel-Etikettposition låg

formatera Axis Task Pane-Label Position Low

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.

 Quad diagram av axlar - Positionsetiketter och formatera

Quad diagram av axlar - Positionsetiketter och formatera

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.

Worksheet_Calculate händelse för att hålla axlarna på plats

Worksheet_Calculate händelse för att hålla axlarna i Position

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.



+