尝试设置scale_x_discrete和scale_y_discrete时出错

时间:2017-03-09 20:30:47

标签: r ggplot2

我运行以下代码:

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行):

   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

我得到以下情节:

enter image description here

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

 + scale_x_discrete(limits=c("IBM","Merck","Lockheed","Google","Apple","CapitalOne")) + 
scale_y_discrete(limits=c("Bombardier","Iogen","Westport","Nortel","Mitel","Blackberry"))

并收到以下错误:

  

'x'的比例已经存在。为'x'添加另一个比例,其中   将取代现有的规模。

警告讯息:

  

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

在尝试重新排序轴后,情节现在看起来像这样:

有没有办法超越并设置我喜欢的x轴和y轴?

为什么一行数据会消失?

1 个答案:

答案 0 :(得分:0)

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

你有一个缺失的行,因为在scale_y_discrete你拼写了“Westport”并且小写'p'。从第一张图看起来它应该是“WestPort”。

另外:

我还考虑让你的数据整洁:有一个名为“patent_type”的列(共享/不共享)和一个带有专利号的列。有一个名为“country_location”(美国或加拿大)和另一个“company_name”的列。

我不知道点图是这个数据的最佳选择。好像你正在尝试将很多变量塞进一个图中(例如。使用alpha作为数字不是最好的选择。)