partykit - How to plot a glmtree without overlapping of terminal nodes?
up vote
1
down vote
favorite
I would like to plot a tree resulting from glmtree (partykit package). Unfortunately, the terminal nodes are overlapping and the labels of the graphs are no longer displayed properly.
The code that generates the tree is this one:
library(partykit)
library(aVirtualTwins)
data(sepsis)
attach(sepsis)
data <- cbind(y = survival, trt = as.factor(THERAPY), sepsis[,3:13])
formula <- as.formula(paste("y ~ trt", paste(names(sepsis[,3:13]),
collapse = " + "), sep = " | "))
fit <- glmtree(formula, data, family = binomial)
plot(fit)
detach(sepsis)
Is there a way to customize the output of plot() in order to avoid overlapping of the terminal nodes?
Here is a picture of what I mean:

r plot tree glm party
add a comment |
up vote
1
down vote
favorite
I would like to plot a tree resulting from glmtree (partykit package). Unfortunately, the terminal nodes are overlapping and the labels of the graphs are no longer displayed properly.
The code that generates the tree is this one:
library(partykit)
library(aVirtualTwins)
data(sepsis)
attach(sepsis)
data <- cbind(y = survival, trt = as.factor(THERAPY), sepsis[,3:13])
formula <- as.formula(paste("y ~ trt", paste(names(sepsis[,3:13]),
collapse = " + "), sep = " | "))
fit <- glmtree(formula, data, family = binomial)
plot(fit)
detach(sepsis)
Is there a way to customize the output of plot() in order to avoid overlapping of the terminal nodes?
Here is a picture of what I mean:

r plot tree glm party
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I would like to plot a tree resulting from glmtree (partykit package). Unfortunately, the terminal nodes are overlapping and the labels of the graphs are no longer displayed properly.
The code that generates the tree is this one:
library(partykit)
library(aVirtualTwins)
data(sepsis)
attach(sepsis)
data <- cbind(y = survival, trt = as.factor(THERAPY), sepsis[,3:13])
formula <- as.formula(paste("y ~ trt", paste(names(sepsis[,3:13]),
collapse = " + "), sep = " | "))
fit <- glmtree(formula, data, family = binomial)
plot(fit)
detach(sepsis)
Is there a way to customize the output of plot() in order to avoid overlapping of the terminal nodes?
Here is a picture of what I mean:

r plot tree glm party
I would like to plot a tree resulting from glmtree (partykit package). Unfortunately, the terminal nodes are overlapping and the labels of the graphs are no longer displayed properly.
The code that generates the tree is this one:
library(partykit)
library(aVirtualTwins)
data(sepsis)
attach(sepsis)
data <- cbind(y = survival, trt = as.factor(THERAPY), sepsis[,3:13])
formula <- as.formula(paste("y ~ trt", paste(names(sepsis[,3:13]),
collapse = " + "), sep = " | "))
fit <- glmtree(formula, data, family = binomial)
plot(fit)
detach(sepsis)
Is there a way to customize the output of plot() in order to avoid overlapping of the terminal nodes?
Here is a picture of what I mean:

r plot tree glm party
r plot tree glm party
edited Nov 9 at 15:24
miselking
1,60841927
1,60841927
asked Nov 9 at 14:31
calcium238
84
84
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
The plot() output for glmtree objects (and also other partykit objects) is customizable through panel functions for all aspects of the tree (inner nodes, terminal nodes, edges, ...). The panel function employed by default for this kind of tree is node_bivplot() which has a number of arguments that can be tweaked. See ?node_bivplot for details. The relevant option here is ylines that you can increase to 2, for example.
To pass arguments to the terminal panel functiontp_args can be used:
plot(fit, tp_args = list(ylines = 2))

Thanks, Achim, for your support. Now I understand, how to pass arguments to the panel functions. Additionally, I changed some names of covariates and this is, what I came up with: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(digits = 1))
– calcium238
Nov 12 at 7:24
Great, glad it could be solved. Could you please also accept the answer here on StackOverflow that it gets flagged as solved by the system?
– Achim Zeileis
Nov 12 at 9:37
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53227676%2fpartykit-how-to-plot-a-glmtree-without-overlapping-of-terminal-nodes%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
The plot() output for glmtree objects (and also other partykit objects) is customizable through panel functions for all aspects of the tree (inner nodes, terminal nodes, edges, ...). The panel function employed by default for this kind of tree is node_bivplot() which has a number of arguments that can be tweaked. See ?node_bivplot for details. The relevant option here is ylines that you can increase to 2, for example.
To pass arguments to the terminal panel functiontp_args can be used:
plot(fit, tp_args = list(ylines = 2))

Thanks, Achim, for your support. Now I understand, how to pass arguments to the panel functions. Additionally, I changed some names of covariates and this is, what I came up with: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(digits = 1))
– calcium238
Nov 12 at 7:24
Great, glad it could be solved. Could you please also accept the answer here on StackOverflow that it gets flagged as solved by the system?
– Achim Zeileis
Nov 12 at 9:37
add a comment |
up vote
0
down vote
accepted
The plot() output for glmtree objects (and also other partykit objects) is customizable through panel functions for all aspects of the tree (inner nodes, terminal nodes, edges, ...). The panel function employed by default for this kind of tree is node_bivplot() which has a number of arguments that can be tweaked. See ?node_bivplot for details. The relevant option here is ylines that you can increase to 2, for example.
To pass arguments to the terminal panel functiontp_args can be used:
plot(fit, tp_args = list(ylines = 2))

Thanks, Achim, for your support. Now I understand, how to pass arguments to the panel functions. Additionally, I changed some names of covariates and this is, what I came up with: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(digits = 1))
– calcium238
Nov 12 at 7:24
Great, glad it could be solved. Could you please also accept the answer here on StackOverflow that it gets flagged as solved by the system?
– Achim Zeileis
Nov 12 at 9:37
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
The plot() output for glmtree objects (and also other partykit objects) is customizable through panel functions for all aspects of the tree (inner nodes, terminal nodes, edges, ...). The panel function employed by default for this kind of tree is node_bivplot() which has a number of arguments that can be tweaked. See ?node_bivplot for details. The relevant option here is ylines that you can increase to 2, for example.
To pass arguments to the terminal panel functiontp_args can be used:
plot(fit, tp_args = list(ylines = 2))

The plot() output for glmtree objects (and also other partykit objects) is customizable through panel functions for all aspects of the tree (inner nodes, terminal nodes, edges, ...). The panel function employed by default for this kind of tree is node_bivplot() which has a number of arguments that can be tweaked. See ?node_bivplot for details. The relevant option here is ylines that you can increase to 2, for example.
To pass arguments to the terminal panel functiontp_args can be used:
plot(fit, tp_args = list(ylines = 2))

answered Nov 9 at 22:29
Achim Zeileis
6,06111925
6,06111925
Thanks, Achim, for your support. Now I understand, how to pass arguments to the panel functions. Additionally, I changed some names of covariates and this is, what I came up with: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(digits = 1))
– calcium238
Nov 12 at 7:24
Great, glad it could be solved. Could you please also accept the answer here on StackOverflow that it gets flagged as solved by the system?
– Achim Zeileis
Nov 12 at 9:37
add a comment |
Thanks, Achim, for your support. Now I understand, how to pass arguments to the panel functions. Additionally, I changed some names of covariates and this is, what I came up with: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(digits = 1))
– calcium238
Nov 12 at 7:24
Great, glad it could be solved. Could you please also accept the answer here on StackOverflow that it gets flagged as solved by the system?
– Achim Zeileis
Nov 12 at 9:37
Thanks, Achim, for your support. Now I understand, how to pass arguments to the panel functions. Additionally, I changed some names of covariates and this is, what I came up with: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(digits = 1))
– calcium238
Nov 12 at 7:24
Thanks, Achim, for your support. Now I understand, how to pass arguments to the panel functions. Additionally, I changed some names of covariates and this is, what I came up with: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(digits = 1))
– calcium238
Nov 12 at 7:24
Great, glad it could be solved. Could you please also accept the answer here on StackOverflow that it gets flagged as solved by the system?
– Achim Zeileis
Nov 12 at 9:37
Great, glad it could be solved. Could you please also accept the answer here on StackOverflow that it gets flagged as solved by the system?
– Achim Zeileis
Nov 12 at 9:37
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53227676%2fpartykit-how-to-plot-a-glmtree-without-overlapping-of-terminal-nodes%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown