Я пытаюсь сделать барплот в Matplotlib в логарифмическом масштабе. Если я сделаю это вручную (рисунок 3 ниже), я получу правильный ответ, но если я использую matplotlib set_yscale('log')
или использую атрибут журнала barplot, я получу неправильный график. Итак, как вы можете видеть на рисунках 1 и 2, график неверный, так как log10 (y2) = ([5.7363965, 5.77815125])
Ниже MWE:
from __future__ import division
import numpy as np
from matplotlib import pyplot as plt
ind = np.array(['US', 'EU'])
y2 = [545000, 600000]
fig = plt.figure(1)
ax = fig.add_subplot(1, 1, 1)
plt.bar(ind, y2)
ax.set_yscale('log')
plt.title('example 1')
#plt.savefig('../../Desktop/ex1.jpg')
fig = plt.figure(2)
ax2 = fig.add_subplot(1, 1, 1)
plt.bar(ind, y2, log=True)
plt.title('example2')
#plt.savefig('../../Desktop/ex2.jpg')
fig2 = plt.figure(3)
ax1 = fig2.add_subplot(1, 1, 1)
plt.bar(ind, np.log10(y2))
plt.title('example 3')
#plt.savefig('../../Desktop/ex3.jpg')
plt.show()
и вот цифры:


