de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 markusian
markusian
Вопрос

Гистограмма в логарифмической шкале в gnuplot

Я должен построить гистограмму в логарифмической шкале на обеих осях, используя gnuplot. Мне нужно, чтобы ячейки были одинаково расположены в log10. Использование логарифмической шкалы на оси y не является проблемой. Основная проблема заключается в создании бункера по оси x. Например, используя 10 бункеров в log10, первые ячейки будут [1], [2], [3] .... [10-19] [20 - 29] ..... [100 190] и т. Д. , Я искал в сети, но я не нашел никакого практического решения. Если реализовать его в gnuplot слишком сложно, вы можете предложить другое программное обеспечение/язык для этого?

Поскольку кто-то спросил, я объясню более конкретно то, что мне нужно сделать. У меня есть (огромный) список:

1   14000000
2   7000000
3   6500000
.
.
.
.
6600    1
8900    1
15000   1
19000   1

Это показывает, например, что 14 миллионов IP-адресов отправили 1 пакет, 7 milions 2 пакета .... 1 ip-адрес отправил 6600 пакетов, ..., 1 ip-адрес отправил 19000 пакетов. Поскольку вы можете видеть, что значения на обеих осях довольно высокие, поэтому я не могу построить его без логарифмической шкалы.

Первые вещи, которые я пробовал, потому что мне нужно было сделать это быстро, составляли этот список, как и с gnuplot, устанавливающим logscale на обе оси с помощью ящиков. Результат понятен, но не слишком уместен. Фактически, коробки становились все более тонкими, идущими прямо по оси x, потому что, очевидно, в 10-100 точек больше, чем в 1-10! Таким образом, это стало настоящим беспорядком после второго десятилетия.

3 2011-10-27T18:41:29+00:00 3
 markusian
markusian
Редактировал вопрос 28-го октября 2011 в 3:34
Программирование
gnuplot
histogram
logarithm
bins
Woltan
28-го октября 2011 в 7:55
2011-10-28T07:55:42+00:00
Дополнительно
Источник
Редактировать
#56791540

Я попытался построить гистограмму с обеими осями, логарифмически масштабированными и gnuplot через ошибку

Log scale on X is incompatible with histogram plots.

Таким образом, похоже, что gnuplot не поддерживает масштаб журнала по оси x с гистограммами.

5
0
MightyMouse
27-го декабря 2012 в 11:26
2012-12-27T23:26:58+00:00
Дополнительно
Источник
Редактировать
#56791542

Построение графика в лог-лог-шкале в GnuPlot отлично выполнимо в отличие от другого сообщения в этом потоке.

Можно установить шкалу log-log в GnuPlot с помощью команды set logscale . Тогда предположение состоит в том, что мы имеем файл с положительными (строго ненулевыми) значениями как по оси х, так и по оси y. Например, следующий файл является допустимым файлом:

1 0.5
2 0.2
3 0.15
4 0.05

После установки шкалы логарифмического журнала можно построить файл с помощью команды: plot "file.txt" w p где, конечно, file.txt - это имя файла. Эта команда будет генерировать вывод с точками.

Обратите также внимание на то, что построение ящиков является сложным и, вероятно, не рекомендуется. Сначала нужно ограничить область x командой с помощью команды set xrange [1: 4] и только потом построить с полями. В противном случае, когда x-диапазон не определен, возвращается ошибка. Я предполагаю, что в этом случае для построения графика требуются (для соответствующих значений х), чтобы иметь размер log (0), который, конечно, не определен и, следовательно, возвращается ошибка.

Надеюсь, это ясно, и это также поможет другим.

4
0
Blender
30-го октября 2011 в 2:23
2011-10-30T02:23:01+00:00
Дополнительно
Источник
Редактировать
#56791541

Вы пробовали Matplotlib с Python ? Matplotlib - действительно хорошая библиотека построения графиков, и при использовании с простым синтаксисом Python вы можете легко создавать сюжеты:

import matplotlib.pyplot as plot

figure = plot.figure()
axis = figure.add_subplot(1 ,1, 1)
axis.set_yscale('log')

# Rest of plotting code
1
0
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 4 дня назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
JA
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией