我正在玩的数据来自下面列出的互联网资源
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")
Run Code Online (Sandbox Code Playgroud)
我想要做的是创建一个2D点图,比较该表中的两个指标,每个玩家在图上表示一个点.我有以下代码:
nbaplot <- ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name)) +
geom_point()
Run Code Online (Sandbox Code Playgroud)
这给了我以下内容:

我想要的是一个玩家名字的标签就在点旁边.我认为ggplot美学中的标签功能会为我做这个,但事实并非如此.
我也尝试过text()函数和textxy()函数library(calibrate),它们似乎都不适用于ggplot.
如何为这些点添加名称标签?
反正有没有让grid.arrange()充当split.screen()?我想安排一张桌子直接位于图例下方.
#create histogram
my_hist<-ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
#create inset table
my_table<- tableGrob(head(diamonds)[,1:3],gpar.coretext =gpar(fontsize=8),gpar.coltext=gpar(fontsize=8), gpar.rowtext=gpar(fontsize=8))
grid.arrange(my_hist,my_table, ncol=2)
Run Code Online (Sandbox Code Playgroud)
生产:

但我希望它看起来像这样:

我尝试了split.screen()但它似乎不适用于ggplot类型的图形.有什么建议?谢谢.
我想在轴标题旁边添加图例.我按照这个stackoverflow的答案得到了情节.
如何在两个y轴上添加图例?.我想在左右Y轴上都有传奇.在下图中,右侧y轴缺少图例符号.
也可以为类似于图例中的符号的文本提供独特的颜色.
同时,如何将图例键符号旋转到垂直位置?
我到目前为止的代码:
## install ggplot2 as follows:
# install.packages("devtools")
# devtools::install_github("hadley/ggplot2")
packageVersion('ggplot2')
# [1] ‘2.2.0.9000’
packageVersion('data.table')
# [1] ‘1.9.7’
# libraries
library(ggplot2)
library(data.table)
# data
df1 <- structure(list(plate_num = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L),
`Before Treatment` = c(662.253098499674, 684.416067929458, 688.284595300261,
692.532637075718, 728.988910632746, 684.708496732026,
703.390706806283, 673.920966688439, 644.945573770492, 504.423076923077,
580.263743455497, 580.563767168084, 689.6014445174, 804.740789473684,
815.792020928712, 789.234139960759, …Run Code Online (Sandbox Code Playgroud) 我想将图例放在闪亮的流体页面侧栏中的其中一张图表中。为此,我有两个想法:1)通过ggplotly获取图例grob并放入侧边栏,或2)用相同的颜色渲染图例,并在侧边栏中无图。不幸的是,我不确定如何执行这些操作。有任何想法吗?示例下面有光泽。
library(plotly, shiny)
data <- ChickWeight
ag_data <- aggregate(data$weight,
list(time = data$Time, diet = data$Diet),
mean)
ui <- fluidPage(
sidebarPanel("Put Legend Here"),
mainPanel(
plotlyOutput("chick_weight")
)
) # End fluid page
server <- function(input, output) {
output$chick_weight <- renderPlotly({
plot_ly(
x = c(ag_data$time),
y = c(ag_data$x),
type = "scatter",
mode = "lines",
split = c(ag_data$diet),
showlegend = FALSE
)
})
} # End server function
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)