Как очистить значения оси x в matplotlib? - PullRequest
0 голосов
/ 09 июля 2020

Итак, у меня есть следующий код:

fig, ax = plt.subplots(dpi=220)

data.plot(kind='bar', y='p_1', ax=ax, color ='red')
data.plot(kind='bar', y='value_1', ax=ax, color ='blue')

ax.set_xlabel("Index values")
ax.set_ylabel("Value 1 / P_1")


#ax.legend(["Value 1, P_1"])
plt.title('Line plots')

plt.show()

, который возвращает следующий график: Рассматриваемый график

Как вы можете видеть, по оси абсцисс происходят сумасшедшие вещи. Мне было интересно, что пошло не так и как это исправить?

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Вот что вы ищете, я думаю plt.xticks(positions, labels)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

fig, ax = plt.subplots(dpi=220)

### used this to generate and test a new plot
data = pd.DataFrame(np.array(
    [np.arange(50),
    np.arange(50)]
).T).rename(columns={0: 'value_1', 1:'p_1'})
print(data)

data.plot(kind='bar', y='p_1', ax=ax, color ='red')
data.plot(kind='bar', y='value_1', ax=ax, color ='blue')

ax.set_xlabel("Index values")
ax.set_ylabel("Value 1 / P_1")

### added new code here
ticks = range(0, 50, 5)
labels = ticks
plt.xticks(ticks, labels)

#ax.legend(["Value 1, P_1"])
plt.title('Line plots')
1 голос
/ 09 июля 2020
plt.xticks(np.arange(0, len(value_1)+1, 5), np.arange(0, len(value_1)+1, 5) ) 

создает отметку каждые 5 интервалов и соответствующую метку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...