denne artikel viser, hvor let det er at oprette et scatter-diagram med dets plotområde opdelt vandret og lodret i fire regioner. Regionerne er adskilt af kortakserne, og disse akser kan placeres, hvor det er nødvendigt for at afgrænse kvadranterne.
jeg har skrevet en tutorial, der viser, hvordan man opretter et udmærke-diagram med farvet Kvadrantbaggrund, hvilket var mere kompliceret, da det brugte stablede områder og sekundære akser for at få den farvede baggrund. Dette er meget enklere at oprette og vedligeholde, og tjener stort set det samme formål.
her er eksempler på data med beregnede gennemsnit og det oprindelige scatter-diagram. Vi vil placere akserne ved de respektive gennemsnit af data, selvom du kan placere dem, hvor det giver mening i din analyse.
vi er nødt til at flytte akserne i dette diagram. Dobbeltklik på den vandrette akse, eller vælg den vandrette akse, og tryk på Ctrl+1 (tal et) for at åbne opgaveruden formatakse (vist her, Formatakse 2013) eller dialogboksen Formatakse (fungerer stort set det samme i tidligere versioner). Under Akseindstillinger >lodrette Aksekryds skal du vælge indstillingen Akseværdi og indtaste gennemsnittet i feltet som vist.
resultatet er vist nedenfor til venstre. Gentag for den lodrette akse, under højre.
disse akseetiketter er helt i vejen, men det er let at flytte dem. Formater hver akse (åbn opgaveruden eller dialogen som ovenfor), og vælg lav i rullemenuen under etiketter > Etiketposition.
nu er disse etiketter langs kanterne af diagrammet, hvor de gør mere godt end skade (nedenfor til venstre). Du kan lave en lille mængde formatering for at få kvadranterne til at stikke lidt mere tydeligt ud. I diagrammet nedenfor til højre har jeg brugt en lysere grå nuance til gitterlinjerne, og jeg har brugt en mørkere farve, faktisk den samme farve som markørerne, for aksellinjens farve.
det er let at bruge VBA til at placere akserne og akseetiketterne ved hjælp af en simpel rutine som vist nedenfor. Denne rutine placerer etiketterne og bruger derefter gennemsnittet beregnet i regnearket til at placere akselinjerne.
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
den næste rutine springer over regnearkets beregninger, i stedet for at tage gennemsnittet af H-og Y-værdierne, der er afbildet i diagrammet for at placere akselinjerne.
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 endda bruge regnearkshændelser til at flytte diagramakserne. Mine værdier blev beregnet ved hjælp af =RANDBETWEEN(2,14)
, så når regnearket beregnes (f.eks. ved at trykke på funktionstasten F9), ændres værdierne. Jeg kan udnytte denne beregningsbegivenhed som følger.
- Højreklik på fanen regneark, og vælg Vis kode i popup-menuen. VB-editoren åbnes med et kodemodul svarende til regnearket.
- Vælg regneark i rullemenuen til venstre øverst i det nye kodemodul.
- Vælg Beregn fra rullemenuen til højre.
- Indtast koden som vist.
her er koden, så du ikke behøver at skrive det hele selv. Du skal blot kopiere og indsætte i regnearkets kode modul.
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
afhængigt af detaljerne i din regnearksmodel kan du bruge Worksheet_Calculate
, Worksheet_Change
, Worksheet_PivotTableUpdate
, eller andre hændelsesprocedurer for at opdatere diagrammet.