首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试设置scale_x_discrete和scale_y_discrete时出错

尝试设置scale_x_discrete和scale_y_discrete时出错
EN

Stack Overflow用户
提问于 2017-03-09 20:30:46
回答 1查看 961关注 0票数 0

我运行以下代码:

代码语言:javascript
复制
ggplot(pat, aes(y=CANCompany,x=USCompany,alpha=TotalPatents,
                size=SharedPatents,color = Revenue)) + 
theme(legend.position="bottom", legend.box.just="center",
      legend.key.size=unit(0.55,"cm")) + 
scale_size(range = c(0, 15)) + 
scale_colour_gradient(low="yellow", high="green4") + geom_point() +
theme(axis.text.x  = element_text(angle=90, vjust=0.5, size=10), 
      axis.text.y  = element_text(angle=0, vjust=0.5, size=10)) +
scale_x_discrete(position = "top") +
coord_fixed() +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), 
panel.background = element_blank(), axis.line = element_line(colour = "black"))

关于下列数据:(显示前10行):

代码语言:javascript
复制
   CANCompany  USCompany SharedPatents Revenue TotalPatents
        <chr>      <chr>         <int>   <int>        <int>
1  Blackberry     Google             3      58           27
2  Blackberry        IBM             1      52           71
3  Blackberry      Apple             2     107           46
4  Blackberry   Lockheed            11      43           29
5  Blackberry CapitalOne             2     142           70
6  Blackberry      Merck             5      10           68
7  Bombardier     Google             8      89           34
8  Bombardier        IBM            12     100           24
9  Bombardier      Apple             4       8           29
10 Bombardier   Lockheed             5     134           53

我得到了以下情节:

然后,我将以下两行添加到代码中:

代码语言:javascript
复制
 + scale_x_discrete(limits=c("IBM","Merck","Lockheed","Google","Apple","CapitalOne")) + 
scale_y_discrete(limits=c("Bombardier","Iogen","Westport","Nortel","Mitel","Blackberry"))

并获得以下错误:

“x”的比例已经存在。为“x”添加另一个刻度,这将取代现有的刻度。

警告信息:

删除了包含缺失值(geom_point)的6行。

在试图重新排序轴之后,这个图现在看起来如下:

有没有办法让x轴和y轴都按我喜欢的方向调整?

为什么一行数据会消失?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-09 21:09:23

警告告诉您您使用了scale_x_discrete两次。尝试删除第一个实例并将position = top添加到第二个实例。

您有一个缺失行,因为在scale_y_discrete中,您用小写'p‘拼写"Westport“。从第一个图表看,它应该是"WestPort“。

此外:

我还会考虑整理您的数据:有一个名为"patent_type“的列(shared/ named )和一个带有专利号的列。有一个名为"country_location“(美国或加拿大)的列和另一个"company_name”。

我不知道圆点图是这个数据的最佳选择。似乎你试图把很多变量塞进一个图中(例如,用alpha表示数字不是最好的选择)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42704821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档