问答

如何为ggplot2散点图绘制特定的颜色和形状?

 来源    2019-07-24    759  

我一直在尝试使用ggplot2制作一个散点图,其中这些点既是一组自定义的颜色和形状,但却没有得到我想要的.

以下代码为我提供了正确的形状,但只有两种颜色(紫色和蓝色):

ggplot(dat, aes(x=dat$PC2, y=dat$PC3)) +
  geom_point(aes(color=dat$color, shape=dat$shape)) +
  scale_colour_manual(values=dat$color) +
  ggtitle("PC Scores") +
  theme(legend.position="none")

下面的代码仍然给我正确的形状,但现在显示颜色差异.但是,虽然需要不同颜色的点现在是不同的颜色,但它们不是正确的颜色.它取代了我想要的颜色,看起来像是默认调色板.

ggplot(dat, aes(x=dat$PC2, y=dat$PC3)) +
  geom_point(aes(color=factor(dat$color), shape=dat$shape)) +
  scale_fill_manual(values=dat$color) +
  ggtitle("PC Scores") +
  theme(legend.position="none")

我哪里出错了颜色?我尝试从颜色切换到填充命令,但我似乎无法得到正确的组合.是因为我重复了颜色吗?

以下是我试图绘制的数据(dat)示例:

PC2 PC3 color   shape
-0.14   -0.22   purple  21
-0.04   -0.18   purple  21
0.12    -0.04   purple  21
0.34    0.08    blue    21
-0.06   -0.29   blue    21
0.13    -0.09   blue    21
0.02    0.02    blue    21
0.07    -0.12   orange  21
0.09    -0.10   orange  21
0.17    -0.06   orange  21
0.57    0.59    red 22
0.13    -0.01   red 22
0.26    0.19    red 22
0.18    0.07    red 21
0.13    -0.03   red 21
-0.19   -0.06   purple  22
-0.08   -0.04   purple  22
-0.03   -0.07   purple  22
0.12    -0.03   black   24
0.03    -0.19   black   24
0.11    -0.06   black   24
-0.42   0.29    blue    22
-0.63   0.39    blue    22
-0.57   0.32    blue    22
-0.23   0.16    blue    22
0.14    -0.05   purple  24
0.31    -0.15   purple  24

非常感谢!

问题是您必须在绘图之前设置因子级别,并且需要将颜色名称设置为字符向量:

# set the levels of dat$color in the right order
dat$color <- factor(dat$color, levels = c("purple","blue","orange","red","black"))
# create a character vector of colornames
colr <- as.character(unique(dat$color))

ggplot(dat, aes(x=PC2, y=PC3)) +
  geom_point(aes(color=color, shape=factor(shape))) +
  scale_color_manual(breaks=unique(dat$color), values=colr)

这给了:

注意:出于说明原因,我没有删除图例.

如何根据ggplot2散点图的数值阈值定义颜色组
问答我有一个包含2个变量的数据集x =事件编号& y =测定振幅.我正在尝试在ggplot2中创建一个散点图,其中所有的点都是> 3000用一种颜色着色,所有的点都是 dat <- d ...
23
Python散点图根据值绘制不同的颜色
问答我有一个数据框,我想制作一个散点图. 数据框看起来像: year length Animation 0 1971 121 1 1 1939 71 1 2 1941 7 0 3 1996 70 1 4 ...
6
使用R绘制GGPLOT2散点图上的两个数据向量
问答我一直在尝试ggplot2和lattice来绘制数据面板.围绕ggplot2模型,我有一点麻烦.特别地,如何在每个面板上绘制两组数据的散点图: 在格子我可以做到这一点: xyplot(Predicte ...
4
通过符号在ggplot2中设置特定的填充颜色
问答您好想调整下面的图表,使低于零的值填充为红色,上面的值为深蓝色.我如何用ggplot2这样做? mydata = structure(list(Mealtime = "Breakfast&q ...
9
c – 如何仅在特定像素颜色上绘制多边形?
问答我在屏幕上绘制了多个不同颜色的多边形,现在我必须绘制另一个不同颜色的多边形,但是这个多边形应该仅绘制在具有特定颜色的像素上. 我在他们自己的"层"中同时渲染每个不同的彩色多边形,( ...
2
在ggplot2中更改特定刻度的颜色
问答假设我使用ggplot创建了自定义刻度: library(ggplot2) ticksX <- data.frame (t = c(0,0.25,0.5,0.75,1)) ticksY < ...
1
如何为ggplot2地图增加连续颜色填充的数量
问答我使用ggplot2在R中创建地图相对较新,但是我已经在这个问题上苦苦挣扎了几天.我创建了我的情节,但似乎无法增加用于将颜色映射到我的值的容器数量. 这是一个问题,因为地图不能很好地显示数据的变化.我 ...
1
ggplot2:绘制具有一组相似颜色的离散因子
问答我正在尝试用一种一致的方式来表示我的数据集中的每个因子.因此,例如,每当我绘制涉及词性的内容时,我可以将"词性"的级别用不同的蓝色阴影表示: eg.dat <- data.f ...
2
Android:如何以编程方式为矢量绘制设置笔触颜色
问答我在Android中遇到了VectorDrawable的问题. 我有一个矢量可绘制文件(.xml),我想在位图上绘制它.我设法加载这个文件并在位图上绘制它.我可以改变它的填充颜色,但问题是我不能改变它 ...
1
python – 根据网络节点的值为网络节点绘制不同的颜色
问答我有一个很大的节点和有向边的图.此外,我还分配了每个节点的附加值列表. 我现在要根据它们的节点值来改变每个节点的颜色.因此,例如,绘制具有非常高的红色值的节点和具有低值蓝色的节点(类似于热图).这是不 ...
1
在ggplot2散点图中使用伪彩色来表示密度
问答有人知道如何创建截图中的图形吗?我试图获得类似的效果调整alpha,但这会使异常值几乎不可见.我只从一个名为FlowJo的软件中知道这种类型的图形,这里它们称之为"伪彩色点图".不 ...
3
python – 根据使用散射的变量绘制没有填充,颜色和大小的圆圈
问答我必须在图上显示的信息是2个坐标:size&颜色(没有填充).颜色很重要,因为我需要一种颜色图表类型的图表来根据颜色值显示信息. 我尝试了两种不同的方法: >创建特定圈子并添加各个圈子. ...
2
如何为IIS7中的特定IP子网启用匿名身份验证,同时为每个其他IP子网维护基本身份验证?
问答我偶然发现了IIS7的一个问题;显然,不可能将"匿名认证"限制在特定范围的IP地址,即子网,至少不在网站内某个文件夹的GUI中: > 10.0.0.0/24:匿名访问&quo ...
1
c# – 如何在wpf中动态更改组合框特定项目颜色
问答<Grid x:Name="LayoutRoot"> <ComboBox x:Name="com_ColorItems" Height=&qu ...
1
在日期格式轴的ggplot2中绘制次要刻度(不是网格刻度)
问答我正在尝试为黑白出版物制作一些图形,我在使用轴时遇到了一些问题. 我需要在轴(而不是网格)中绘制数据的子图,我通过使用带有基数2的annotation_logticks(base = 2,sides ...
1
android – 如何使用canvas绘制带有背景颜色的文本
问答我有一些代码,我在位图(画布)上绘制我的文本 canvas.drawTextOnPath(Text, textPath[count], gipa, -10, text); 请告诉我,可以在路径(tex ...
1
使用for循环在ggplot2中绘制单个图中的多行
问答我尝试在单个图中绘制多条线,如下所示: y <- matrix(rnorm(100), 10, 10) m <- qplot(NULL) for(i in 1:10) { m <- ...
1
ggplot2密度绘制R中不同大小的数据
问答我有两个数据集,它们的大小是500和1000.我想在一个图中绘制这两个数据集的密度. 我在谷歌做了一些搜索. > r-geom-density-values-in-y-axis > ggp ...
1
objective-c – iOS – 如何使用无序的CGPoints绘制特定的CGPath
问答考虑这个ASCII绘图: A _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ D | | | | | | | | | | | | | | | | | | | | | | | | |_ ...