Ярлыки оси не правильно расположены - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь построить данные столбца против метки строки фрейма данных. Когда я это делаю, график выглядит хорошо, но ось Y начинает выглядеть нечеткой, так как количество строк увеличивается. Что я не понимаю, почему автоматическое расстояние c для оси X работает нормально, но не одинаково для оси Y.

x1 = M.iloc[:,1]
plt.plot(x1,x)

Где переменная "x" представляет значения столбца 0 кадр данных "M" ниже

enter image description here

Кадр данных "M":

            0.0         0.5   1.0
0           300  300.000000  1550
1.00e-01 s  300  300.769527  1550
2.00e-01 s  300  301.538106  1550
3.00e-01 s  300  302.305739  1550
.
.
.
2.80e+00 s  300  321.192396  1550
2.90e+00 s  300  321.935830  1550

Редактировать

Так что, похоже, форматирование первого столбца в научной нотации c мешает, все еще неясно, почему, однако

x = [0]
i=1
while i < 30:
    q = i*0.1
    xx = str('{:.2e}'.format(q)) + ' s'
    x.append(xx)
    i = i + 1

M = pd.DataFrame(index=x, columns=3)

Итак, в приведенном выше коде это линия xx = str('{:.2e}'.format(q)) + ' s', которая делает Y-метки go сумасшедшими. Я, к сожалению, не могу вынести это, поскольку мне нужно, чтобы они были в научной нотации c.

1 Ответ

0 голосов
/ 21 апреля 2020

Вы можете попробовать интервал между тиками, если все в порядке, чтобы устранить несколько меток. Другие варианты - увеличить размер графика или уменьшить размер шрифта для меток y.

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

x1 = M.iloc[:,1]


tick_spacing = 2 # or whatever label gap you want to use.

fig, ax = plt.subplots(1,1)
apx.plot(x1,x)
ax.yaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
plt.show()
...