def _plot_helmholtz_volume(self, ax, thin_number=10, xlabel='Volume $(\\AA^3)$', ylabel='Free energy'):
    if (self._energy_plot_factor is None):
        _energy_plot_factor = 1
        _ylabel = (ylabel + ' (eV)')
    else:
        _energy_plot_factor = self._energy_plot_factor
        _ylabel = ylabel
    volume_points = np.linspace(min(self._volumes), max(self._volumes), 201)
    selected_volumes = []
    selected_energies = []
    thin_index = 0
    for (i, t) in enumerate(self._temperatures[:self._len]):
        if ((i % thin_number) == 0):
            selected_volumes.append(self._equiv_volumes[i])
            selected_energies.append(self._equiv_energies[i])
    for (i, t) in enumerate(self._temperatures[:self._len]):
        if (t >= 298):
            if (i > 0):
                de = (self._equiv_energies[i] - self._equiv_energies[(i - 1)])
                dt = (t - self._temperatures[(i - 1)])
                e0 = ((((298 - self._temperatures[(i - 1)]) / dt) * de) + self._equiv_energies[(i - 1)])
            else:
                e0 = 0
            break
    e0 *= _energy_plot_factor
    for (i, t) in enumerate(self._temperatures[:self._len]):
        if ((i % thin_number) == 0):
            ax.plot(self._volumes, ((np.array(self._free_energies[i]) * _energy_plot_factor) - e0), 'bo', markeredgecolor='b', markersize=3)
            ax.plot(volume_points, ((self._eos(volume_points, *self._equiv_parameters[i]) * _energy_plot_factor) - e0), 'b-')
            thin_index = i
    for (i, j) in enumerate((0, thin_index)):
        ax.text(self._volumes[(- 2)], ((((self._free_energies[(j, (- 1))] + ((1 - (i * 2)) * 0.1)) - 0.05) * _energy_plot_factor) - e0), ('%dK' % int(self._temperatures[j])), fontsize=8)
    ax.plot(selected_volumes, ((np.array(selected_energies) * _energy_plot_factor) - e0), 'ro-', markeredgecolor='r', markersize=3)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(_ylabel)
def _plot_helmholtz_volume(self, ax, thin_number=10, xlabel='Volume $(\\AA^3)$', ylabel='Free energy'):
    if (self._energy_plot_factor is None):
        _energy_plot_factor = 1
        _ylabel = (ylabel + ' (eV)')
    else:
        _energy_plot_factor = self._energy_plot_factor
        _ylabel = ylabel
    volume_points = np.linspace(min(self._volumes), max(self._volumes), 201)
    selected_volumes = []
    selected_energies = []
    thin_index = 0
    for (i, t) in enumerate(self._temperatures[:self._len]):
        if ((i % thin_number) == 0):
            selected_volumes.append(self._equiv_volumes[i])
            selected_energies.append(self._equiv_energies[i])
    for (i, t) in enumerate(self._temperatures[:self._len]):
        if (t >= 298):
            if (i > 0):
                de = (self._equiv_energies[i] - self._equiv_energies[(i - 1)])
                dt = (t - self._temperatures[(i - 1)])
                e0 = ((((298 - self._temperatures[(i - 1)]) / dt) * de) + self._equiv_energies[(i - 1)])
            else:
                e0 = 0
            break
    e0 *= _energy_plot_factor
    for (i, t) in enumerate(self._temperatures[:self._len]):
        if ((i % thin_number) == 0):
            ax.plot(self._volumes, ((np.array(self._free_energies[i]) * _energy_plot_factor) - e0), 'bo', markeredgecolor='b', markersize=3)
            ax.plot(volume_points, ((self._eos(volume_points, *self._equiv_parameters[i]) * _energy_plot_factor) - e0), 'b-')
            thin_index = i
    for (i, j) in enumerate((0, thin_index)):
        ax.text(self._volumes[(- 2)], ((((self._free_energies[(j, (- 1))] + ((1 - (i * 2)) * 0.1)) - 0.05) * _energy_plot_factor) - e0), ('%dK' % int(self._temperatures[j])), fontsize=8)
    ax.plot(selected_volumes, ((np.array(selected_energies) * _energy_plot_factor) - e0), 'ro-', markeredgecolor='r', markersize=3)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(_ylabel)