Создать диаграмму рассеяния из данных двух фреймов данных?

У меня есть два фрейма данных в python. Содержание их следующее:

Таблица = подключение

A   B   relevance
1   3   0.7
2   7   0.1
5   20  2
6   2   7

Таблица=точка

Point  Lat   Lon
1      45.3  -65.2
2      34.4  -60.2
3      40.2  -60.1
20     40.4  -63.1

В первой таблице столбец A представляет собой источник, столбец B — пункт назначения и релевантность ссылки.

С другой стороны, во второй таблице мы имеем для каждой точки (отправления или назначения) свои координаты.

Проблема в том, что я хочу создать визуализацию на Python, которая позволяет запрашивать координаты каждого источника или пункта назначения (столбцы A и B первой таблицы) во второй таблице и делать с ней диаграмму рассеяния. Затем свяжите каждое из мест отправления и назначения в первом столбце с учетом релевантности более толстыми линиями, так как оно имеет большее значение.

Ссылка относится к линии, которая соединяет точки в графическом представлении.

Есть идеи? Я начал с очень простого подхода к коду, но у меня действительно возникли проблемы с его выполнением.

for row in conn.interrows():
    row[1][0]
    row[1][1]
    row[1][3]   

Мутабельность и переработка объектов в Python
Мутабельность и переработка объектов в Python
Объекты являются основной конструкцией любого языка ООП, и каждый язык определяет свой собственный синтаксис для их создания, обновления и...
Другой маршрут в Flask Python
Другой маршрут в Flask Python
Flask - это фреймворк, который поддерживает веб-приложения. В этой статье я покажу, как мы можем использовать @app .route в flask, чтобы иметь другую...
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
Проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
Python PyPDF2 - запись метаданных PDF
Python PyPDF2 - запись метаданных PDF
Python скрипт, который будет записывать метаданные в PDF файл, для этого мы будем использовать PDF ридер из библиотеки PyPDF2 . PyPDF2 - это...
Переменные, типы данных и операторы в Python
Переменные, типы данных и операторы в Python
В Python переменные используются как место для хранения значений. Пример переменной формы:
Почему Python - идеальный выбор для проекта AI и ML
Почему Python - идеальный выбор для проекта AI и ML
Блог, которым поделился Harikrishna Kundariya в нашем сообществе Developer Nation Community.
1
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас есть два DataFrames: point и conn, верно?

# To set indexes of "point" equal to "Points"
point.set_index(point.Point, inplace=True)

# config width of lines
min_width = 0.5
max_width = 4.0

min_relevance = conn.relevance.min()
max_relevance = conn.relevance.max()
slope = (max_width - min_width)/(max_relevance - min_relevance)
widths = min_width + slope*(conn.relevance - min_relevance)

# plot lines
for i in range(len(conn)):
    origin = conn.loc[i, 'A']
    destin = conn.loc[i, 'B']
    lat = point.loc[[origin, destin], 'Lat']
    lon = point.loc[[origin, destin], 'Lon']
    plt.plot(lat, lon, c='red', lw=widths[i])

# plot points
plt.plot(point.Lat, point.Lon, ls='', marker='o', c='blue')

Привет @Joao_PS, твой код работал идеально. С другой стороны, хотелось бы добавить небольшой функционал: представьте, что в таблице точек есть переменная num people, как я могу представить толщиной точки количество людей?

Nosequinposar Tampoc 19.11.2022 17:13

Это размер маркера. Дайте определение min_mk_size и max_mk_size. Настройте размер маркеров так же, как я сделал widths (но используя количество людей). Вы должны получить массив или фрейм данных... возможно, называется mk_sizes. Итак, передайте опцию markersize=mk_sizes в plt.plot.

Joao_PS 19.11.2022 19:29

Другие вопросы по теме