Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4

"Дрожание" точек на диаграмме рассеяния

06.04.2021, 18:28. Показов 1938. Ответов 8

Студворк — интернет-сервис помощи студентам
Добрый день!

Возможно-ли в Python добавить "дрожание" точек на диаграмме рассеяния. Например, в R можно сделать так, что к координатам точек добавляется небольшой "шум" ("дрожание")

Какой параметр тут нужно добавить?
Python
1
2
3
4
5
6
7
import numpy as np
import matplotlib.pyplot as plt
 
sp_df = pd.DataFrame(np.random.randint(0, 50, size = (400, 2)), columns=['a', 'b'])
 
plt.scatter(x=sp_df['a'], y=sp_df['b'], alpha=0.5)
plt.show()
Спасибо!

Добавлено через 23 минуты
Или лучше этот "шум" добавлять к данным в массиве?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2021, 18:28
Ответы с готовыми решениями:

Подписи (аннотация) точек на диаграмме рассеяния
Добрый день! Стоит задача создать вот такой график. методом проб написал код, прошу не ругать за зря вызываемые библиотеки)) КОд...

Обозначение точек на диаграмме
Доброго дня всем! Подскажите, пожалуйста, если у меня есть 3 столбца - условно "Названия точек" (текст), "Координата х"...

Выбор точек на диаграмме Chart
Здравствуйте! Подскажите, пожалуйста, есть ли в данном языке возможность на построенном графике в Chart выбирать произвольные точки...

8
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
06.04.2021, 19:14
VistaSV30, да, думаю лучше добавить к данным массива непосредственно в 6 строке. Типа нормально-распределенных случайных данных с нулевым средним и заданной дисперсией.
1
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
07.04.2021, 14:20  [ТС]
u235, пробовал изменять значения в массиве
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
 
a = pd.DataFrame(np.random.randint(0, 20, size=(400, 2)))
b = 10
a.loc[:, 'X'] = a[0] + np.random.randn()*b
a.loc[:, 'Y'] = a[1] + np.random.randn()*b
 
fig, ax = plt.subplots()
ax.scatter(x=a['X'], y=a['Y'], alpha=0.5, s=80)
 
fig.set_figwidth(8)    #  ширина и
fig.set_figheight(8)  # высота
ax.set_xlabel('Название оси X', fontsize = '12') # название оси X
ax.set_ylabel('Название оси Y.', fontsize = '12') # название оси Y
 
plt.grid(True)
plt.show()
Пока не получается добиться такого эффекта как в R
Исходная диаграмма


Добавлен "шум"
0
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
07.04.2021, 14:23  [ТС]
Тут конечно были применены и другие способы оформления: цвет, прозрачность. Но, только добавление параметра jiter позволило наглядно показать, что наибольшая плотность значений наблюдается при Distance = 5
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
07.04.2021, 16:11
VistaSV30, у вас b слишком большой. Сделайте его поменьше. 1, например.
Покажите график, сделанный в R. Чтобы понятнее было к чему стремиться.
0
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
08.04.2021, 17:51  [ТС]
u235, я пробовал разные значения b - нужного результата не получается.
Думаю, тут надо делать специальную функцию, которая точки без наложения не будет изменять, а на другие добавлять количество "шума" пропорционально количеству наложений.

На этой диаграмме еще добавлена прозрачность контура, нет заливки точек. Но в целом получается, наглядно видно, что наибольшее количество наложений в точке 5;5

Вот такого результата я хотел бы добиться в Python
0
2741 / 1667 / 268
Регистрация: 19.02.2010
Сообщений: 4,409
08.04.2021, 18:41
VistaSV30, а может без всяких шумов - просто решать именно ту задачу, которая и нужна?
А именно - восстановить и нарисовать на графике двумерную плотность распределения вероятности. И там посмотреть, где лежит максимум.
Всё будет видно без напрягания глаз - либо по цветовой раскраске (если раскрасится плоскость), либо по координатам "вершины" "рельефа" (если будет трёхмерный график, т.е. если добавленной осью будет ось плотности вероятности).
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
08.04.2021, 19:47
Лучший ответ Сообщение было отмечено VistaSV30 как решение

Решение

VistaSV30, попробуйте как-то так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np
import matplotlib.pyplot as plt
 
aa=np.random.randint(0,30, size=(3300, 2))
aa=np.sort(aa, axis=0)
noise=np.random.normal(0, 0.9, size=(3300, 2))
aa=aa+noise
fig, ax = plt.subplots()
#ax.scatter(x=a['X'], y=a['Y'], alpha=0.5, s=80)
ax.scatter(x=aa[:,0], y=aa[:,1], alpha=0.1, s=40, facecolor='#1010ffff', edgecolor='#0000ffff')
fig.set_figwidth(8)    #  ширина и
fig.set_figheight(8)  # высота
ax.set_xlabel('Название оси X', fontsize = '12') # название оси X
ax.set_ylabel('Название оси Y.', fontsize = '12') # название оси Y
 
plt.grid(True)
plt.show()
Миниатюры
"Дрожание" точек на диаграмме рассеяния  
1
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
09.04.2021, 11:01  [ТС]
VTsaregorodtsev, У меня в исходных данных интервалы времени сохранены в минутах и очень их много приходится на определенный отрезок. Простое добавление прозрачности точек смотрится не так наглядно, как хотелось бы.
Тем более все показатели являются вещественными числами, просто при сохранении в базу их округляют
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.04.2021, 11:01
Помогаю со студенческими работами здесь

Индивидуальные названия точек на точечной диаграмме
Привет всем! Есть набор данных, три строки - название, ось Х и ось Y. Как добавить данные на диаграмму так, чтобы каждой точке...

Замыкание крайних точек множества на диаграмме
Доброе утро, господа. Помогите решить непростой вопрос. Есть точечная диаграмма - на которой представлено множество точек. Как...

Ограничено количество выводимых точек в диаграмме EXCELя
В екселе простроил диаграмму, мне нужно отобразить в ней из буфера 200 значений, но отобразить можно только 30, формат значений хх.ххх, в...

Изменение положения подписей шкалы точек в обычной диаграмме
Здравствуйте! Есть следующая задача: отобразить две диаграммы - одна с положительными, другая с отрицательными значениями. При выводе...

Разработать базу данных по ER – диаграмме, предварительно исправив ошибки в данной диаграмме. Разработку осуществить при
Разработать базу данных по ER – диаграмме, предварительно исправив ошибки в данной диаграмме. Разработку осуществить при помощи языка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru