Проблема в том, что после изменения размера yticks
они различаются, и, следовательно, вы получаете больший набор меток, который на самом деле не подходит соответственно.Вам нужно установить метки после изменения размера.Как вы видите, измененный график имеет только четыре галочки.Первые четыре метки от графика до изменения размера отображаются в ваших выходных данных, которые не являются правильными.
Просто для пояснения, я сохранил print()
для tick
и ticklabels
до и после изменения размера.
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcdefaults()
fig, ax = plt.subplots()
years = [1980, 1990, 2000, 2010, 2020]
data = [
[10000, 11000, 12000, 13000, 11000], [20000, 21000, 31000, 61000, 65000],
[0, 10000, 30000, 100000, 90000]]
ax.stackplot(years, data)
ax.grid(linestyle='--', color='k', alpha=0.15, axis='y')
print("Ticks before:",list(ax.get_yticks()))
width = 4
height = width/1.6
fig.set_size_inches(width, height)
ax.set_yticklabels([x/1000 for x in ax.get_yticks()])
print("Ticks after:",list(ax.get_yticks()))
plt.show()
Выход:
