Tento článek vám ukáže, jak snadné je vytvořit bodový graf s jeho plocha pozemku rozdělena horizontálně a vertikálně do čtyř oblastí. Oblasti jsou odděleny osami grafu a tyto osy mohou být umístěny tam, kde je to nutné k vymezení kvadrantů.
napsal jsem návod ukazuje, jak vytvořit v Excelu Graf S Barevné Kvadrantu Pozadí, které bylo složitější, protože používá skládaný oblastech a sekundární osy, aby se barevné pozadí. To je mnohem jednodušší vytvořit a udržovat, a slouží téměř stejnému účelu.
zde jsou ukázková data X a Y s vypočtenými průměry a počáteční graf rozptylu XY. Osy umístíme na příslušné průměry dat X a Y, i když je můžete umístit tam, kde to má smysl ve vaší analýze.
potřebujeme přemístit osy tohoto grafu. Poklepejte na vodorovnou osu nebo vyberte vodorovnou osu a stiskněte Ctrl+1 (číslice jedna), otevřete podokno úloh osy formátu (zobrazeno zde, Excel 2013) nebo dialog osy formátu (funguje stejně jako v dřívějších verzích aplikace Excel). V části Možnosti osy >křížky svislé osy vyberte možnost hodnota osy a do pole zadejte průměr X, jak je znázorněno.
výsledek je zobrazen vlevo dole. Opakujte pro svislou osu vpravo dole.
tyto štítky OS jsou zcela v cestě, ale je snadné je přesunout. Naformátujte každou osu (otevřete podokno úloh nebo dialogové okno, jak je uvedeno výše) a pod štítky > pozice štítku vyberte z rozbalovací nabídky Low.
Teď ty popisky jsou na okrajích grafu, kde dělají více dobrého než špatného (vlevo dole). Můžete udělat malé množství formátování, aby kvadranty vyčnívaly trochu jasněji. V grafu vpravo dole jsem použil světlejší odstín šedé pro mřížky a použil jsem tmavší barvu, ve skutečnosti stejnou barvu jako značky, pro barvu osy.
To je snadné použití VBA k poloze osy a popisky osy, pomocí jednoduché rutiny, jako je to znázorněno níže. Tato rutina umístí štítky a poté použije průměry vypočtené v listu k umístění čar osy.
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
další rutinní přeskočí na listu výpočty, místo s průměry X a Y hodnoty vyneseny v grafu na poloze osy linie.
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
můžete dokonce použít události listu k přemístění OS grafu. Moje hodnoty X a Y byly vypočteny pomocí =RANDBETWEEN(2,14)
, takže kdykoli list vypočítá (např. stisknutím funkčního tlačítka F9), hodnoty se změní. Tuto událost výpočtu mohu využít následovně.
- klikněte pravým tlačítkem myši na kartu pracovní list a v místní nabídce vyberte Zobrazit kód. Editor VB se otevře s modulem kódu odpovídajícím listu.
- vyberte list z levé rozbalovací nabídky v horní části nového modulu kódu.
- v pravé rozbalovací nabídce vyberte možnost vypočítat.
- Zadejte kód podle obrázku.
Zde je kód, takže nemusíte psát to všechno sám. Jednoduše zkopírujte a vložte do modulu kódu listu.
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
v závislosti na podrobnostech modelu pracovního listu můžete použít Worksheet_Calculate
, Worksheet_Change
, Worksheet_PivotTableUpdate
, nebo jiné postupy událostí pro aktualizaci grafu.