Matplotlib увеличить расстояние между точками на оси X

1

Я ищу способ предотвращения наложения меток. Во время поиска через Stackoverflow я даже не мог найти предложения о том, как управлять расстоянием по оси x.

Изображение 174551

        matplotlib.pyplot.xticks(x, xticks, rotation=90)
        matplotlib.pyplot.plot(x, y)
        matplotlib.pyplot.bar(x, y, alpha=0.2)

        matplotlib.pyplot.title(
            f"średnia cena produktu {self.identifier}, według kontrahentów")
        matplotlib.pyplot.xlabel("kontrahent")
        matplotlib.pyplot.ylabel("cena")


        matplotlib.pyplot.tight_layout()

        matplotlib.pyplot.savefig(os.path.join(
            "products", self.identifier, "wykres.png"))
        matplotlib.pyplot.close()
Теги:
matplotlib

1 ответ

0
Лучший ответ

Во-первых, трудно точно знать, что происходит, без ваших данных, поэтому мне пришлось создавать фиктивные данные и настраивать ваши переменные "self.identifier" и "xticks", учитывая, что мы не знаем, что это такое.

При этом функция, которую вы ищете,

plt.tick_params(axis='x', which='major', labelsize=__)

как видно из приведенного ниже кода:

import numpy as np
import matplotlib.pyplot as plt

#make dummy data
x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]
y=np.random.rand(len(x))

plt.figure()
plt.plot(x, y)
plt.bar(x, y, alpha=0.2)
plt.title(f"średnia cena produktu, według kontrahentów")
plt.xlabel("kontrahent")
plt.ylabel("cena")
plt.xticks(x, [str(i) for i in y], rotation=90)

#set parameters for tick labels
plt.tick_params(axis='x', which='major', labelsize=3)

plt.tight_layout()
  • 0
    Это может быть дубликатом stackoverflow.com/questions/6390393/…
  • 0
    Я видел этот пост, но я хотел бы сохранить размер шрифта. Я пытаюсь только увеличить расстояние между барами.
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню