Figsize не использует предопределенную ширину для двух участков - PullRequest
0 голосов
/ 28 февраля 2020

Рассмотрим следующий пример:

width = 472.03123  # textwidth of our LaTeX document

def set_size(width, fraction=1, subplot=[1, 1]):
    # Width of figure
    fig_width_pt = width * fraction

    # Convert from pt to inches
    inches_per_pt = 1 / 72.27

    # Golden ratio to set aesthetic figure height
    golden_ratio = (5**.5 - 1) / 2

    # Figure width in inches
    fig_width_in = fig_width_pt * inches_per_pt
    # Figure height in inches
    fig_height_in = fig_width_in * golden_ratio * (subplot[0] / subplot[1])

    fig_dim = (fig_width_in, fig_height_in)

    return fig_dim

fig, ax = plt.subplots(1, 1, figsize=set_size(width, subplot=[1, 1]))
#fig, ax = plt.subplots(1, 2, figsize=set_size(width, subplot=[1, 2]))

ax.plot([1,2,3,4], [1,2,3,4])
ax.set_xlabel('x'), ax.set_ylabel('y')

#ax[1].plot([1,2,3,4], [1,2,3,4])
#ax[1].set_xlabel('x'), ax[1].set_ylabel('y')

plt.savefig("path/example1.pdf" , format='pdf', bbox_inches='tight')
plt.show()

С помощью этого кода можно создать фигуру с одним или двумя объектами топора. В обоих случаях одинаковая ширина используется для размера инжира (изменяется только высота).

Когда я знаю, что включаю обе цифры в латексный документ, тогда ширина уже не такая, как указано красными линиями:

\documentclass[12pt]{article}
% package necessary to inset pdf as image
\usepackage{enumerate, graphicx, mathrsfs}
\usepackage{subfig}
\usepackage[tmargin=2.5cm, 
bmargin=2.5cm, 
lmargin=2.5cm,
rmargin=2.5cm]{geometry}

\begin{document}
Our first figure Our first figure Our first figure Our first figure Our first figure figure 
\begin{figure}[h]
    \centering
    \includegraphics{example1.pdf}
\end{figure}

\begin{figure}[h]
    \centering
    \includegraphics{example2.pdf}
\end{figure}



\end{document}

---> enter image description here

Как это исправить, чтобы фигура с одним объектом топора имела такую ​​же ширину, как фигура с двумя объектами топора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...