Изменить тип графика
у меня есть csv файл, по которому я строю график. https://dropmefiles.com/4vUsn
Нужно сделать его сплошной линией, подскажите как это сделать. Пытался изменить его тип, получалась либо просто линия, начиная от 0 и под углом 90 градусов вправо, либо вообще попросту исчезала. Вот как я это делаю
data = pd.read_csv("C://Users//vlz//pjct//venv//2.csv",header=None, usecols=[0,6],
names=["year", "val"], index_col=0)
data = data.query(("{} <= year <= {}").format(A,B))
data.plot()
A и B - данные, которые я получаю из комбобоксов, по факту это диапазон годов
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
У вас есть 85 значений -1:
In [39]: data.query("val < 10")
Out[39]:
val
year
1981 -1.0
1981 -1.0
1981 -1.0
1981 -1.0
1981 -1.0
... ...
2004 -1.0
2004 -1.0
2004 -1.0
2004 -1.0
2004 -1.0
[85 rows x 1 columns]
можно их исключить и нарисовать график:
data.query("val >= 10").plot()
Кроме того у вас есть несколько значений меньших 20:
In [43]: data.query("0 <= val < 20")
Out[43]:
val
year
2007 19.07
2007 17.07
2007 15.92
2007 14.98
2007 14.23
2007 13.79
2007 13.41
2007 13.28
2007 14.36
2007 16.52
2007 19.82
Автор решения: strawdog
→ Ссылка
Как совершенно справедливо заметил Эникейщик, попробуйте сначала преобразовать фрейм так, чтобы учитывались недели, а затем уже отрисовать график:
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12, 8))
data = pd.read_csv("2.csv",header=None, usecols=[0,1,6], names=["year", "week", "val"])
data['date'] = pd.to_datetime((data["year"]*100+data["week"]).astype(str) + '0', format='%Y%W%w')
data = data.set_index("date")
ax.plot(data["val"])



