Точечный график R с маленькими линиями в качестве маркеров - как получить тонкие, но широкие линии?
Я хотел бы изобразить несколько последовательностей чисел как точечный график, но с маркерами, которые будут линиями, а не точками. Один из способов - использовать
pch='-'
:
## example 10 sequences, each with 15 values
data <- t(sapply(1:15, function(x){rnorm(n=10, mean=x)}))
matplot(x=1:15, y=data, type='p', pch='-', cex=1, col='black')
нормально, только хотелось бы, чтобы линии были шире. Используя строку дефисов,
pch='----'
, не дает более широких линий.
Я могу исправить их ширину другой
cex
:
matplot(x=1:15, y=data, type='p', pch='-', cex=5, col='black')
имеет желаемую ширину, но теперь линии слишком толстые.
Интересно, есть ли способ отдельно выбрать увеличение маркеров в направлениях x и y или получить желаемый результат другим способом.
Редактировать:
Одно из возможных решений - разместить несколько копий одних и тех же данных рядом с небольшими приращениями по оси x:
matplot(x=1:15, y=data, type='p', pch='-', cex=1, col='black')
for(dx in seq(-0.3, 0.3, by=0.1)){
matpoints(x=(1:15)+dx, y=data, type='p', pch='-', cex=1, col='black')
}
Результат более-менее такой, как хотелось бы:
но мне интересно, есть ли более элегантное решение.
1 ответ
Две быстрые мысли.
Найдите шрифт с действительно длинным "тире" или "подчеркиванием" и используйте его.
Это будет медленным, но замените каждую упорядоченную пару {x,y} в вашем наборе данных двумя точками {xk,y},{x+k,y} и нанесите линии между каждой парой отдельно.