Как отметил @Matt, Python 3.6 предоставляет f-строки , и они также могут использовать вложенные параметры :
value = 2.34558
precision = 2
width = 4
print(f'result: {value:{width}.{precision}f}')
, которые будут дисплей result: 2.35
EDIT: Лучшее решение с ggplot2
версии 1.0.0 с помощью position_jitterdodge
. См. Ответ @Didzis Elferts. Обратите внимание, что dodge.width
управляет шириной уклонения, а jitter.width
управляет шириной дрожания.
Я не уверен, как код создавал график в pdf.
Но что-то вроде этого приближает вас к тому, что вам нужно?
Преобразуем tailindex
и memorypar
в числовые; добавьте их вместе; и результатом является координата x для слоя geom_jitter
. Вероятно, есть более эффективный способ сделать это. Кроме того, я хотел бы видеть, как уклонение geom_boxplot
и geom_jitter
и без дрожания приведет к созданию графика в pdf.
library(ggplot2)
dodge <- position_dodge(width = 0.9)
ex5$memorypar2 <- as.numeric(ex5$tailindex) +
3 * (as.numeric(as.character(ex5$memorypar)) - 0.2)
p <- ggplot(ex5,aes(x=tailindex , y=hillest)) +
scale_x_discrete() +
geom_jitter(aes(colour = memorypar, x = memorypar2),
position = position_jitter(width = .05), alpha = 0.5) +
geom_boxplot(aes(colour = memorypar), outlier.colour = NA, position = dodge) +
facet_wrap(~ process, nrow = 2)
p
[/g0]
В версии ggplot2
1.0.0
есть новая позиция с именем position_jitterdodge()
, созданная для такой ситуации. Это положение должно использоваться внутри geom_point()
, и внутри aes()
должно быть fill=
, чтобы показать, какой переменной уклониться от ваших данных. Для управления шириной аргумента уклонения dodge.width=
следует использовать.
ggplot(ex5,aes(x=tailindex ,y=hillest,color=memorypar,fill=memorypar)) +
facet_wrap(~process,nrow=2) +
geom_point(position=position_jitterdodge(dodge.width=0.9)) +
geom_boxplot(fill="white",outlier.colour = NA,
position = position_dodge(width=0.9))
[/g0]