Что я делаю не так с Yticks Matplotlibs? - PullRequest
0 голосов
/ 20 марта 2019

Мой код выглядит следующим образом (не спрашивайте имена переменных, я немецкий ^^):

import matplotlib.pyplot as plt
import numpy as np 

strecke = []
zeit = []

daten = open("BewegungBeschleunigung.csv")

for i in daten:
    i =  i.strip().split(",")
    strecke.append(i[1])
    zeit.append(i[0])

zeit.pop(0)
strecke.pop(0)

f, ax = plt.subplots()

ax.set_xticks(np.arange(0, 100 + 1, 5)) 
ax.set_yticks(np.arange(0,6000, 10))
ax.set_xlabel("Zeit")
ax.set_ylabel("Strecke")

plt.plot(zeit, strecke, "go")
#plt.autoscale(enable = False, axis = "both", tight = None)
plt.grid(True)
plt.show()

Теперь мой вопрос: как вы можете видеть на картинке, ось у только идетдо 4860 вместо 6000, что я написал, а не в 10 шагов (как я и хотел).Это просто происходит случайными шагами.Что я делаю не так и почему ось х не достигает 100?

спасибо за вашу помощь.

enter image description here

1 Ответ

0 голосов
/ 20 марта 2019

Проблема, которую я обнаружил, заключалась в том, что ваши значения были строками.Вы можете конвертировать их в числа с плавающей точкой при сохранении в списках.Затем вы можете установить пределы оси.Обратите внимание, что np.arange(0,6000, 10) будет генерировать 600 тиков.Это переполнит вашу ось Y.

for i in daten:
    i =  i.strip().split(",")
    strecke.append(float(i[1]))
    zeit.append(float(i[0]))
zeit.pop(0)
strecke.pop(0)

f, ax = plt.subplots()

ax.set_xlabel("Zeit")
ax.set_ylabel("Strecke")
ax.plot(zeit, strecke, "go")
ax.set_xlim(0, 100)
ax.set_ylim(0, 6000)
ax.grid(True)

enter image description here

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