Plamkuję dane z pliku csv z wartościami na osi Y i datą na osi X. Mój zestaw danych zawiera tylko dane z czerwca, lipca i sierpnia w ciągu 15 lat. Jednak, gdy próbuję wykreślić te dane, wszystkie dane na osi X są drukowane w całym okresie, a nie tylko w miesiącach letnich w pliku csv. Poniżej jest to, co moja działka obecnie wyglądaJak nanieść dane równomiernie wzdłuż osi X?
Oto kod, który produkowany ten obraz:
infile = r'data.csv'
with open(infile,'r') as f:
data = list(reader(f))
date = [parser.parse(i[10]) for i in data[1:]] #3
date = mdates.date2num(date)
date = mdates.num2date(date)
value = [i[16] for i in data[1:]]
fig = plt.figure()
plt.plot(date, value, '.r')
Zasadniczo, staram się dostać tę samą działkę bez wszystkich przestrzeniach pomiędzy dane z każdego roku.
Oto, jak wygląda snajper moich danych (z lat 2002-2016). Kolumna daty (kolumna L) składa się z ciągów. Te dane pochodzą z pliku CSV wyświetlanego w Excelu.
Można ustawić 'xticks' ale myślę, że fabuła stanie się bezsensowne? Mielibyśmy masę punktów na całym wykresie i nierównomierne skoki wszędzie wzdłuż osi X. Wizualnie to byłoby dla mnie bez znaczenia w porównaniu z twoim aktualnym wykresem. – roganjosh
Z * przepraszam, a twoje pytanie stwierdza "równomiernie wzdłuż osi x", co jest dokładnie tym, co już masz. Wydaje się, że twoim pragnieniem jest posiadanie _nejwymiarowej osi X i jeśli nie planujesz zrobić czegoś więcej w tym spisku, to byłby to jeden z najbardziej mylących wykresów, jakie kiedykolwiek widziałem. Czy na pewno tego chcesz? – roganjosh
Widzę, gdzie leży twoje zamieszanie. Wszystkie moje dane pochodzą z tych samych trzech miesięcy każdego roku, więc najlepiej byłoby, gdyby oś X brzmiała bardziej: 06/2013, 07/2013, 08/2013, 06/2014, 07/2014, 08 /2014,...etc. Trudno jest dostrzec cokolwiek w fabule, jaka jest, a myślenie, że oś X składa się tylko z tych trzech miesięcy, sprawi, że będzie ona bardziej użyteczna wizualnie. – glayne