ez a cikk megmutatja, milyen könnyű létrehozni egy szórási diagramot, amelynek telekterülete vízszintesen és függőlegesen négy régióra oszlik. A régiókat a diagram tengelyei választják el egymástól, és ezek a tengelyek ott helyezhetők el, ahol szükséges a kvadránsok elhatárolása.
írtam egy tutorial bemutatja, hogyan lehet létrehozni egy Excel Chart színes kvadráns háttér, ami bonyolultabb volt, mivel használt halmozott területek és másodlagos tengelyek, hogy a színes háttér. Ez sokkal egyszerűbb létrehozni és fenntartani, és nagyjából ugyanazt a célt szolgálja.
itt van a minta X és Y adatok, számított átlagok, és a kezdeti XY scatter chart. A tengelyeket az X és Y adatok megfelelő átlagára helyezzük el, bár az elemzés során bárhol elhelyezheti őket.
át kell helyeznünk a diagram tengelyeit. Kattintson duplán a vízszintes tengelyre, vagy válassza ki a vízszintes tengelyt, majd nyomja meg a Ctrl+1 billentyűkombinációt (első szám) a tengely formázása Munkaablak (itt látható, Excel 2013) vagy a tengely formázása párbeszédablak megnyitásához (a korábbi Excel verziókban ugyanúgy működik). A Tengelybeállítások >függőleges Tengelykeresztek csoportban jelölje be a tengely értéke opciót, majd írja be az X átlagot a mezőbe, az ábrán látható módon.
az eredmény az alábbiakban látható balra. Ismételje meg a függőleges tengelyt, jobbra lent.
ezek a tengelycímkék teljesen útban vannak, de könnyű mozgatni őket. Formázza az egyes tengelyeket (nyissa meg a munkaablakot vagy a párbeszédpanelt a fentiek szerint), és a címkék > Címkepozíció alatt válassza a lehetőséget alacsony a legördülő menüből.
Most ezek a címkék a diagram szélei mentén vannak, ahol több jót tesznek, mint ártanak (balra lent). Kis mennyiségű formázást végezhet, hogy a kvadránsok kissé világosabbá váljanak. A jobb oldali táblázatban világosabb szürke árnyalatot használtam a rácsvonalakhoz, és sötétebb színt használtam, valójában ugyanolyan színű, mint a markerek, a tengelyvonal színéhez.
könnyen használható VBA pozícionálni a tengelyek és tengely címkék, egy egyszerű rutin, mint az alább látható. Ez a rutin pozícionálja a címkéket, majd a munkalapon kiszámított átlagokat használja a tengelyvonalak pozícionálásához.
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
a következő rutin kihagyja a munkalap számításait, ehelyett a diagramban ábrázolt X és Y értékek átlagát veszi a tengelyvonalak elhelyezéséhez.
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
a munkalap eseményeit is használhatja a diagram tengelyeinek áthelyezéséhez. Az X és Y értékeket a =RANDBETWEEN(2,14)
használatával számítottuk ki, így amikor a munkalap kiszámítja (például az F9 funkciógomb megnyomásával), az értékek megváltoznak. Ezt a számítási eseményt a következőképpen tudom bekapcsolni.
- kattintson a jobb gombbal a munkalap fülre, majd válassza a Kód megtekintése lehetőséget a felugró menüből. A VB szerkesztő a munkalapnak megfelelő kódmodullal nyílik meg.
- válassza a munkalap lehetőséget az új kódmodul tetején található bal oldali legördülő menüből.
- válassza a Számítás lehetőséget a jobb oldali legördülő menüből.
- írja be a kódot az ábrán látható módon.
itt van a kód, így nem kell mindent beírnia. Egyszerűen másolja be a munkalap kód 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
a munkalap modelljétől függően használhatja a Worksheet_Calculate
, Worksheet_Change
, Worksheet_PivotTableUpdate
, vagy más eseményeljárások a diagram frissítéséhez.