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]
Существует хорошая статья, описывающая пользовательские действия здесь: Блог ScottGu
На вопрос, который Вы спросили, отвечает примерно на полпути через комментарии 'Ryan', к сожалению, это находится в VB, но не должно быть трудно перевести:
Private Sub assignApplicationPool(ByVal WebSite As String, ByVal Vdir As String, ByVal appPool As String)
Try
Dim IISVdir As New DirectoryEntry(String.Format("IIS://{0}/W3SVC/1/Root/{1}", WebSite, Vdir))
IISVdir.Properties.Item("AppPoolId").Item(0) = appPool
IISVdir.CommitChanges()
Catch ex As Exception
Throw ex
End Try
End Sub
Private strServer As String = "localhost"
Private strRootSubPath As String = "/W3SVC/1/Root"
Private strSchema As String = "IIsWebVirtualDir"
Public Overrides Sub Install(ByVal stateSaver As IDictionary)
MyBase.Install(stateSaver)
Try
Dim webAppName As String = MyBase.Context.Parameters.Item("TARGETVDIR").ToString
Dim vdirName As String = MyBase.Context.Parameters.Item("COMMONVDIR").ToString
Me.assignApplicationPool(Me.strServer, MyBase.Context.Parameters.Item("TARGETVDIR").ToString, MyBase.Context.Parameters.Item("APPPOOL").ToString)
Catch ex As Exception
Throw ex
End Try
End Sub
... Где APPPOOL предоставляется как аргумент в Пользовательском действии.
Можно использовать CustomAction для изменения IIS во время развертывания, Вот статья, как сделать это: Изменение Internet Information Services Во время Развертывания с Пользовательскими действиями
Пример в статье находится в VB.Net и не показывает явно, как изменить Пул приложений, но должно быть легко понять это.