В гистограмме matplotlib при повороте значений цифры стали размазанные
Есть вот такой код, была проблема с тем, что в графике отображались не все значения под осью абсцисс. После добавления строки plt.xticks(x, rotation=90) все значения стали отображаться, однако код стал грузить около 5-6 секунд (раньше грузил мгновенно) и цифры под осью стали размытые. 
x = []
for i in range(len(dataframe['2012-12'].axes[0]) - 1):
x.append(dataframe['2012-12'].iloc[i][2])
fig, ax = plt.subplots(figsize=(20,10), dpi = 100)
ax.hist(x, bins=80)
ax.set_facecolor('seashell')
fig.set_facecolor('floralwhite')
fig.set_figwidth(10) # ширина Figure
fig.set_figheight(6) # высота Figure
ax=plt.gca()
plt.xticks(x, rotation=90)
plt.show()
x.clear()
Ответы (1 шт):
Автор решения: hedgehogues
→ Ссылка
Данный код выполняется мгновенно, вместе с отрисовкой. Вероятно, Вы что-то ещё изменили.
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 2000)
fig, ax = plt.subplots(figsize=(20,10), dpi = 100)
ax.hist(x, bins=80)
ax.set_facecolor('seashell')
fig.set_facecolor('floralwhite')
fig.set_figwidth(10) # ширина Figure
fig.set_figheight(6) # высота Figure
ax=plt.gca()
plt.xticks(x, rotation=90)
plt.show()
Для чистоты эксперимента выполним сравнение выполнение кода по времени. Первый вариант без rotation:
import datetime
from datetime import time
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 2000)
t0 = datetime.datetime.now()
fig, ax = plt.subplots(figsize=(20,10), dpi = 100)
ax.hist(x, bins=80)
ax.set_facecolor('seashell')
fig.set_facecolor('floralwhite')
fig.set_figwidth(10) # ширина Figure
fig.set_figheight(6) # высота Figure
ax=plt.gca()
plt.xticks(x)
plt.show()
print((datetime.datetime.now() - t0).total_seconds())
Теперь с rotation:
import datetime
from datetime import time
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 2000)
t0 = datetime.datetime.now()
fig, ax = plt.subplots(figsize=(20,10), dpi = 100)
ax.hist(x, bins=80)
ax.set_facecolor('seashell')
fig.set_facecolor('floralwhite')
fig.set_figwidth(10) # ширина Figure
fig.set_figheight(6) # высота Figure
ax=plt.gca()
plt.xticks(x, rotation=90)
plt.show()
print((datetime.datetime.now() - t0).total_seconds())
На моей машине время не отличается. Примерно 200 мс.