|
0 / 0 / 1
Регистрация: 01.07.2017
Сообщений: 22
|
|
Построить гистограмму распределения значения (приближающую плотность вероятности распределения)28.02.2018, 15:16. Показов 20476. Ответов 13
есть словарь
dictionary = {5 : 31, 0 : 29, 12 : 29, 7 : 27, 32 : 26, 13 : 25, 4 : 24, 3 : 23, 16 : 23, 17 : 22, 31 : 22, 6 : 21, 9 : 21, 10 : 21, 2 : 20, 20 : 19, 22 : 19, 23 : 17, 1 : 17, 21 : 17, 34 : 17, 24 : 17, 15 : 17, 29 : 16} так можно построить обычную гистограмму по данным значениям (значение - сколько раз это значение встречается) plt.bar(list(dictionary.keys()), dictionary.values(), 1, color='g') Как построить гистограмму распределения значений? (приближающую плотность вероятности распределения)
0
|
|
| 28.02.2018, 15:16 | |
|
Ответы с готовыми решениями:
13
Как построить гистограмму и график распределения интервалов из лога? Построить гистограмму распределения вероятности
|
|
0 / 0 / 1
Регистрация: 01.07.2017
Сообщений: 22
|
|
| 28.02.2018, 16:39 [ТС] | |
|
вот пример (на рисунке) того, что нужно построить
в plt.hist нужно передать 1 массив значений, не получается построить нечто подобное примеру а нужно построить распределение значений в зависимости от того, как часто они встречаются словарь (значение - количество этих значений)
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|
| 28.02.2018, 16:41 | |
|
Что за информация в словаре? Вернее - какова семантика пары "ключ"-"значение"?
Гистограмма - это представление функции плотности вероятности некоторой - чаше всего одномерной - случайной величины, построенное по выборке. А у вас словарь - то есть некоторые пары. Вариантов трактовки могут быть несколько. Например, ваши данные - это какое-то экзотическое представление объекта в двумерном пространстве. Или это уже посчитанные количества появлений каждого из значений в выборке, которую вы нам не показываете. Или еще какие нибудь другие варианты. Опишите свои данные и я постараюсь объяснить, как именно строится гистограмма конкретно в вашем случае.
0
|
|
|
0 / 0 / 1
Регистрация: 01.07.2017
Сообщений: 22
|
|
| 28.02.2018, 16:47 [ТС] | |
|
(a : b)
a - само значение (объект) b - сколько раз это значение встречается в некоторой выборке Пример: dictionary = {5 : 31, 0 : 29, 12 : 29} Значение "5" встречается в выборке 31 раз. Изначально это был просто массив различных, в том числе повторяющихся, значений, к которому применен collections.Counter(meanings)
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|||
| 28.02.2018, 17:27 | |||
|
Тогда непонятен ваш вопрос.
Тот график, который вы строите - это и есть "почти" гистограмма. "Плотность" (для случая конечной выборки с дискретными значениями) - это отношение количества объектов выборки, имеющих данное значение к общему количеству элементов выборки. Т.е. вам следует посчитать количество элементов в выборке
Вообще-то говоря, если ваш словарь получен из исходной выборки - то мне кажется, вы сделали лишнюю работу. Можно (и нужно) было строить гистограмму сразу по исходной выборке.
0
|
|||
|
0 / 0 / 1
Регистрация: 01.07.2017
Сообщений: 22
|
|
| 28.02.2018, 17:36 [ТС] | |
|
в таком случае получается изображение, в котором много шума.
Если увеличить размер "столбца", то они начнут накладываться друг на друга - но так быть не должно а нужно увеличить размер бина (найти наиболее подходящую разбивку по бинам) - то есть построить распределение, где немного шума и видно как значения располагаются.
0
|
|
|
0 / 0 / 1
Регистрация: 01.07.2017
Сообщений: 22
|
|
| 28.02.2018, 17:39 [ТС] | |
|
например, на этой картинке видно, как столбцы накладываются друг на друга.
как этого избежать и при этом получить нужное изображения распределения?
0
|
|
|
0 / 0 / 1
Регистрация: 01.07.2017
Сообщений: 22
|
|
| 28.02.2018, 17:49 [ТС] | |
|
ТО ЕСТЬ НУЖНО ОБЪЕДИНИТЬ НЕКОТОРЫЕ СОСЕДНИЕ ЗНАЧЕНИЯ - автоматически посчитать количество бинов разбиения
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|
| 28.02.2018, 18:03 | |
|
Сами спросили - сами ответили.
Вопрос-то в чем? В том, что реальная картинка отличается от заглаженно-теоретических графиков в учебниках? Ну так - Welcome to the Real World. Именно такие, ершистые графики и появляются в реальных задачах. А будете (и надо-ли) их сглаживать путем увеличения карманов - так я уже написал - любое огрубление данных ведет к потере информации. Что вам важнее - красивый график или более информационно-насыщенная модель - решать вам.
0
|
|
|
0 / 0 / 1
Регистрация: 01.07.2017
Сообщений: 22
|
|
| 01.03.2018, 10:19 [ТС] | |
|
а есть какие-то "автоматические" способы сглаживания?
или нужно самому писать разбиение на бины -> создавать новый словарь -> строить гистограмму по нему
0
|
|
|
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
|
|
| 01.03.2018, 13:42 | |
|
Если речь идет просто о визуальном сглаживании графика - то прямолинейный подход типа скользящего среднего вполне может оказаться достаточным.
Если же цель именно в восстановлении теоретической функции плотности распределения выборки - то в общем случае это весьма нетривиальная задача. Из доступного введения в тему могу навскидку порекомендовать https://mglerner.github.io/pos... .html?p=28 http://easydan.com/arts/2015/pdf-estimation/ В книге "Allen B. Downey. Think Stats Exploratory Data Analysis in Python" тема также раскрыта весьма подробно и с примерами.
0
|
|
|
|
||||||
| 01.03.2018, 15:34 | ||||||
|
Valeriiia, если значений не миллионы, то предложу быстрый, но очень неоптимальный способ: можно "размотать" словарь и построить гистограмму с помощью hist, где уже можно указать количество бинов с точностью до метода их вычисления. В вашем примере будет 520 значений, но понятное дело, что на больших данных так делать не нужно.
0
|
||||||
|
110 / 36 / 5
Регистрация: 27.12.2012
Сообщений: 130
|
|||||||
| 01.03.2018, 20:46 | |||||||
0
|
|||||||
| 01.03.2018, 20:46 | |
|
Помогаю со студенческими работами здесь
14
Определите плотность распределения вероятности Плотность вероятности и функция распределения Плотность вероятности нормального распределения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|