pgfplots Sabit Genişlikli Şekil

Sep 03 2020

Eksen etiketleri ve gösterge girişleri dahil olmak üzere toplam boyutları ayarlanmış bağımsız bir pgfplots figürünü nasıl oluşturabilirim?

width=5cm, height=5cm,Grafik boyutlarını pgfplots ile ayarlarsam, bana sadece yaklaşık olarak bu boyutta toplam bir rakam verir . Ek olarak, bir gösterge eksen kutusunun dışına yerleştirilirse, açıklama boyutları belirtilen boyutlara eklenir. Kılavuz, ( 4.10.1 Ortak Ölçeklendirme Seçenekleri ) şunları belirtir :

Lütfen pgfplots'un yalnızca eksen ve işaret etiketleri için gereken boyutu tahmin ettiğini unutmayın. Tahmin, eksen kutusunun dışındaki herhangi bir şey için sabit bir alan miktarını varsayar. Bu, nihai görüntülerin belirtilen boyutlardan biraz daha büyük veya biraz daha küçük olabileceği etkisine sahiptir.

ve Ötesi

Yalnızca eksen ölçekle = false (varsayılan) ise, pgfplots etiketler, başlıklar ve işaretler dahil olmak üzere istenen genişliği oluşturmaya çalışır .

Benim MWE'm:

\documentclass[crop]{standalone}

\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}

\begin{axis}[
%Grouping
    scale only axis=false,
    height=,
    width=10cm,
%Domain
    xmin=2000, xmax=2020,
    ymode=log,
%Ticks
    /pgf/number format/1000 sep={},
%Axis Labels
    ylabel= Price \text{[}\$(2020)/kg\text{]},
%Legend
    legend cell align={left},
    legend pos=outer north east,
    legend style={draw=none},
    legend entries={Entry},
]
\addplot[draw=none] coordinates {(2005,10000)};
\end{axis}

\end{tikzpicture}
\end{document}

Aşağıda, John Kormylo tarafından yayınlanan çözümün görsel temsili bulunmaktadır :

Yanıtlar

2 JohnKormylo Sep 03 2020 at 13:45

Korkunç görünüyor, ancak 5 cm'ye 5 cm'lik bir dikdörtgene tam olarak uyuyor.

\documentclass[crop]{standalone}

\usepackage[utf8]{inputenc}
\usepackage{tikz}% reducndant
\usepackage{pgfplots}

\newsavebox{\temp}

\begin{document}
\savebox{\temp}{\begin{tikzpicture}

\begin{axis}[
%Grouping
    name=border,
    height=5cm,
    width=5cm,
%Domain
    xmin=2000, xmax=2020,
    ymode=log,
%Ticks
    /pgf/number format/1000 sep={},
%Axis Labels
    ylabel= Price \lbrack\$(2020)/kg\rbrack, %Legend legend cell align={left}, legend pos=outer north east, legend style={draw=none}, legend entries={Entry}, ] \addplot[draw=none] coordinates {(2005,10000)}; \end{axis} \end{tikzpicture}}% trial \begin{tikzpicture} \begin{axis}[ %Grouping name=border, height={\dimexpr 10cm-\ht\temp}, width={\dimexpr 10cm-\wd\temp}, %Domain xmin=2000, xmax=2020, ymode=log, %Ticks /pgf/number format/1000 sep={}, %Axis Labels ylabel= Price \lbrack\$(2020)/kg\rbrack,
%Legend
    legend cell align={left},
    legend pos=outer north east,
    legend style={draw=none},
    legend entries={Entry},
]
\addplot[draw=none] coordinates {(2005,10000)};
\end{axis}
\draw[red] (current bounding box.south west) rectangle (current bounding box.north east);
\draw[green] (current bounding box.south west) rectangle ++(5cm,5cm);

\end{tikzpicture}

\end{document}