Я создаю двухосную линейную диаграмму с помощью Matplotlib. На графике есть несколько рядов данных. У меня для оси Y задано логарифмическое масштабирование, потому что 2 серии имеют разные диапазоны.
import pandas as pd
import matplotlib.pyplot as plt
data = {
'Sales':[ 1141, 1356, 1604, 2165, 2494, 2933, 3445, 4198, 4287, 4760],
'Profit': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100 ],
'Year':['2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019']
}
df = pd.DataFrame(data, columns = ['Sales', 'Profit', 'Year'])
# multiple line plot
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_yticklabels(df.Profit)
plt.plot( 'Year','Sales', data=df, marker='o', color='brown', linewidth=1)
plt.plot( 'Year','Profit', data=df, marker='o', color='green', linewidth=1, linestyle='dashed')
plt.legend()
plt.yscale("log")
plt.draw()
Выходная диаграмма показана с очень меньшим количеством меток оси y. Есть ли способ отобразить все метки значений осей Y в корзине? Или есть способ показать метки оси Y на более высокой частоте, чтобы упростить чтение значений?
Я пробовал это связанное решение Как отобразить все значения меток в matplotlib? , но не все метки y.
Я также пытался установить явные значения галочек y, как это, но все же метки сделалине появляется.
ax1 = fig.add_subplot(111)
ax1.set_yticklabels(np.arange(5000), minor=True)