Я только начал изучать, как использовать gnuplot.В настоящее время мне нужно построить несколько гистограмм.У меня есть набор данных, который очень компактен и имеет длинный хвост.Конечным результатом этого является наложение блоков / xtics, где данные компактны.Одна из первых идей, которые у меня были, заключалась в том, чтобы использовать ячейки переменной ширины, чтобы попытаться контролировать интервал, но это не сработало.В конце концов, я остановился на создании графиков на основе разных сигм (например, 1σ, 2σ, 3σ и т. Д.), Которые ограничивают диапазон.Для больших сигм я изменяю тип графа на точки линий (хотя перекрывающаяся xtics по-прежнему имеет место, это делает график немного более читабельным).
Однако, делая это, он вызвал мое любопытство по поводу правильного способаделать бункеры переменной ширины.Это вообще возможно?
Вот некоторые примеры данных.Это всего лишь небольшое подмножество и, следовательно, почему есть заметные пробелы.
ITEMS COUNT SCALE
149 60 1
186 811 1
2986 180 2.21622
3069 189 2.21622
5827 45 3.13514
5940 37 3.13514
6189 34 4.2973
6346 32 4.2973
МАСШТАБ считается шкалой ширины бункера.Обратите внимание, что количество корректируется для масштаба.Идея в том, что более широкая ширина будет указывать на то, что в подсчете учитывается масштаб.
Настройка графика была довольно простой
set style data histogram
set style histogram cluster gap 1
set xtics rotate
plot '-' u 2:xtic(1) with boxes t '' lc rgb 'blue'
Часть, которой я все еще являюсьсбит с толку синтаксис значений ввода для using
.Я видел некоторые другие публикации, к сожалению, ни одна из них не помогла мне избавиться от путаницы.
Как создать гистограмму с различной шириной бина
Гистограмма с использованием gnuplot?
В последнем сообщении часть, которая меня смущает, - это строка:
plot "data.dat" u (hist($1,width)):(1.0) smooth freq w boxes lc rgb"green" notitle
Я думал, что using
записей были для значений X, а затем значений Y (позиция Xи высота коробки).Поэтому, когда я читаю вышеприведенную строку, она вызывает функцию hist
, чтобы получить значение X, но тогда Y равно (1.0)
, и эта часть не имеет смысла для меня.
Даже моя линия для построения графиков смущает меня (хотя, похоже, она работает), потому что для использования я использую 2:xtic(1)
.Мне не понятно, почему 1:2
не работает должным образом.
Надеюсь, этот вопрос понятен.С этих выходных я пользуюсь только gnuplot, поэтому справедливо сказать, что я все еще в фазе обучения.