acest articol va arăta cât de ușor este să creați o diagramă scatter cu aria sa de complot împărțită orizontal și vertical în patru regiuni. Regiunile sunt separate de axele diagramei, iar aceste axe pot fi poziționate acolo unde este necesar pentru a delimita cadranele.
am scris un tutorial care arată cum să creați o diagramă Excel cu fundal cadran colorat, care a fost mai complicat, deoarece a folosit zone stivuite și axe secundare pentru a obține fundalul colorat. Acest lucru este mult mai simplu de a crea și de a menține, și servește mult același scop.
Iată datele eșantionului X și Y, cu medii calculate, și diagrama inițială XY scatter. Vom poziționa axele la mediile respective ale datelor X și Y, deși le puteți poziționa oriunde are sens în analiza dvs.
trebuie să repoziționăm axele acestei diagrame. Faceți dublu clic pe axa orizontală sau selectați axa orizontală și apăsați Ctrl + 1 (Numărul unu), pentru a deschide Panoul de activități Format Axis (afișat aici, Excel 2013) sau dialogul Format Axis (funcționează la fel în versiunile anterioare Excel). Sub Opțiuni axă >Cruci axe verticale, selectați opțiunea valoare axă și introduceți Media X în casetă, așa cum se arată.
rezultatul este prezentat mai jos stânga. Repetați pentru axa verticală, sub dreapta.
aceste etichete de axă sunt total în cale, dar este ușor să le mutați. Formatați fiecare axă (deschideți panoul de activități sau dialogul ca mai sus) și sub etichete > poziție etichetă, selectați Scăzut din meniul derulant.
acum aceste etichete sunt de-a lungul marginilor diagramei, unde fac mai mult bine decât rău (mai jos stânga). Puteți face o cantitate mică de formatare pentru a face cadranele să iasă puțin mai clar. În graficul din dreapta jos, am folosit o nuanță mai deschisă de gri pentru liniile de grilă și am folosit o culoare mai închisă, de fapt, aceeași culoare ca markerii, pentru culoarea liniei axei.
este ușor de utilizat VBA pentru a poziționa axele și etichetele axelor, folosind o rutină simplă ca cea prezentată mai jos. Această rutină poziționează etichetele, apoi utilizează mediile calculate în foaia de lucru pentru a poziționa liniile axei.
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
următoarea rutină omite calculele foii de lucru, luând în schimb mediile valorilor X și Y reprezentate grafic în diagramă pentru a poziționa liniile axei.
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
puteți chiar să utilizați evenimente din foaia de lucru pentru a repoziționa axele diagramei. Valorile mele X și Y au fost calculate folosind =RANDBETWEEN(2,14)
, astfel încât ori de câte ori se calculează foaia de lucru (de exemplu, apăsând tasta funcțională F9), valorile se modifică. Pot accesa acest eveniment de calcul după cum urmează.
- faceți clic dreapta pe fila foaie de lucru și selectați Vizualizare cod din meniul pop-up. Editorul VB se deschide cu un modul de cod corespunzător foii de lucru.
- selectați foaia de lucru din meniul derulant din partea stângă din partea de sus a noului modul de cod.
- selectați calculați din meniul vertical din dreapta.
- introduceți codul așa cum se arată.
aici este codul, astfel încât să nu trebuie să-l tastați singur. Pur și simplu copiați și inserați în modulul de cod al foii de lucru.
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
în funcție de detaliile modelului foii de lucru, puteți utiliza Worksheet_Calculate
, Worksheet_Change
, Worksheet_PivotTableUpdate
, sau alte proceduri de eveniment pentru actualizarea diagramei.