Hi, and welcome!
Your question comes close to including a reproducible example, called a reprex, but falls a bit short. Having a reprex
attracts more and helpful answers. The data don't have to be a full set, or even your actual data. They can be a built-in data set with the same structure or just a piece.
So, let's look at the screenshot. Among X, Y, Result and Pxt
, which are discrete and which are continuous?
ggplot(ENGR_293_TEST, aes(x="X", y="Y"))
invokes two that take on several different values. (A rule of thumb is you can try treating as continuous any variable with more than 10 numeric values).
We can neglect annotation_custom
, xlim
and ylim
and scale_shape_identity()
for now and focus on geom_point.
We see immediately that Pxy
isn't implicated, so the issue comes down to Result
, which indeed is discrete--1 or 0, nothing more, nothing less and nothing in between.
Why do we care?
First off, everyone working in ggplot
below the Jedi level sees this a lot. Plus, of course, it's in the way of a display of your data.
Take a look at help(geom_point)
. Both aes
arguments are optional. We can discard colour
and focus on shape
.
Looking at the [documentation(Differentiation related aesthetics: linetype, size, shape — aes_linetype_size_shape • ggplot2)
Shape takes four types of values: an integer in [0, 25],
a single character-- which uses that character as the plotting symbol,
a . to draw the smallest rectangle that is visible (i.e., about one pixel)
an NA to draw nothing
While Result
is an integer, which one? Here, the argument being looked for is a continuous scale from 0 to 25, not a discrete scale of 0 or 1.
Let's step back though and ask what do you want the shape of the points to reflect? Is it just to distinguish zero and one in Results
?
If so, does the group
aes get you there?