Визуализация данных в Python - PullRequest
1 голос
/ 21 января 2020

Допустим, у меня есть траффи c данные джемов, например:

traffic jams data

Как визуализировать мои данные с x = уникальным временем, у = скорость И у меня есть несколько участков уникальной улицы A, B, C, D?

И если у вас есть некоторые рекомендации для визуализации или обслуживания моих данных с другими параметрами (такими как тип дороги, оповещение и т. Д. c) ) Я буду очень признателен.

Спасибо!

1 Ответ

1 голос
/ 22 января 2020

Я могу заверить вас, что это не очень элегантно, но я думаю, что это делает работу. Вы столкнетесь с проблемами для единичных значений времени. Добавлены начальные значения к данным, потому что единичные значения + линейные графики не слишком хороши. Экспериментировал с использованием Scatter, но это просто винты маркировки.

data = {'street': ['street A','street B','street C','street D','street A', 'street B', 'street C', 'street A', 'street C', 'street D'], 'time': [0,0,0,0,1, 1, 1, 2, 2, 2], 'speed': [0,0,0,0,3.22, 1.2, 2.3, 2.3, 2.1, 1.9], 'jams_level': [0,0,0,0,3, 1, 2, 2, 2, 1]}
df = pd.DataFrame(data,columns = ["street","time","speed","jams_level"])
street = list(df.street.unique()) #I am much more comfortable with lists

subdf = []
for i in street:
    subdf.append(df.loc[df["street"] == i].sort_values(by=["time"])) #Grouping dataframes by street

fig,ax = plt.subplots()

for i in subdf:
    i.plot(x="time",y="speed",ax=ax) #use pandas.plot method

ax.legend(street) #rename legend

Это очень хакерский подход sh и, вероятно, недостаточно хорош. Не очень хорошо с pandas манипулированием данными, но, надеюсь, это работает. То, что он делает, по сути делит ваш оригинальный фрейм данных на «улицы». А затем отобразите скорость и время на том же участке перед тем, как переименовать легенду для лучшего чтения. Окраска также может быть сделана, но потребуется немного больше логи c. Опять же, я уверен, что есть гораздо более простое решение. Итоговый участок:

enter image description here

...