我正在尝试使用directlabels包来标记我在一个简单的图中的两条线(我正在使用ggplot2)

我的代码如下:
# libraries
library(ggplot2)
library(directlabels)
# Variables
A = array(1000,100)
F = seq(length=100, from=0, by=10)
f = array(5,100)
# make data frame 1
df <- data.frame(X = F * f/A, Y = F/A)
# plot line 1
p = ggplot(df, aes(x=X,y=Y))
p = p + geom_line(colour="#56B4E9")
# make data frame 2
df1 <- data.frame(X = F * f * 2/A, Y = F/A)
# plot line 2
p = p + geom_line(aes(x=X,y=Y), data=df1, colour="#56B4E9")
# …Run Code Online (Sandbox Code Playgroud) 我使用ggsave函数保存了一个图像,如下所示

但我希望有这样的输出

al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'terrain')
lon<--86.304474
lat<-32.362563
df<-data.frame(lon,lat)
a+ggplot(df)
ggmap(al1)+geom_point(data=df,aes(x=lon,y=lat),size=2)
Run Code Online (Sandbox Code Playgroud)
我试图删除x和y轴值但问题是图像在面板上有白色背景但我只想要绘图图像.
我正在磨光图形,在绘图区域安装直接标签时遇到问题。想要删除y1图中左侧和y轴之间大部分区域,类似于下面的代码生成的区域,但是要保留右侧的额外区域以为标签留出空间。
添加+scale_x_discrete(expand=c(0,0.05))会删除两侧的多余区域,但不会留出标签空间,并且似乎无法仅在一侧将其删除。
在绘图区域的右边加上边距+theme(plot.margin = unit(c(0,4,0,0), "cm"))仍然不允许标签在那里出现。
将标签放置在边框右侧的外部的解决方案会更好。
任何帮助,不胜感激。
library(ggplot2)
library(directlabels)
library(reshape2)
theme_set(theme_bw())
# some data
dfr<-data.frame(c("Longish Name A","Longish Name B","Longish Name C"),c(1,1,1),c(1,2,3),c(2,3,4))
colnames(dfr) <- c("subject","y1","y2","y3")
dfr<-melt(dfr, id.vars="subject")
# the graph
ggplot(data=dfr,aes(y=value, x=variable, group=subject)) +
geom_line(aes(color=subject))+
geom_dl(aes(label=subject), list(dl.trans(x=x+0.2), "last.qp", cex=0.5)) +
guides(color=FALSE)
Run Code Online (Sandbox Code Playgroud) 我已经安排了两个图:顶部的折线图和下面的热图.
我希望热图图例的高度与热图的绘图区域相同,即与y轴的长度相同.我知道我可以使用改变图例的高度和大小theme(legend.key.height = unit(...)),但在找到适当的设置之前,这将需要许多试验和错误.
有没有办法指定图例的高度,使其与热图的绘图区域的高度完全相同,并在绘制为pdf时保留该比率?
我可以尝试使用代码重现的示例:
#Create some test data
pp <- function (n, r = 4) {
x <- seq(1:100)
df <- expand.grid(x = x, y = 1:10)
df$z <- df$x*df$y
df
}
testD <- pp(20)
#Define groups
colbreaks <- seq(min(testD[ , 3]), max(testD[ , 3] + 1), length = 5)
library(Hmisc)
testD$group <- cut2(testD[ , 3], cuts = c(colbreaks))
detach(package:Hmisc, unload = TRUE)
#Create data for the top plot
testD_agg <- aggregate(.~ x, data=testD[ , c(1, …Run Code Online (Sandbox Code Playgroud) 当使用X [Y]连接data.tables X和Y时,X必须有一个键,Y的键用来进行连接.如果X是一个非常大的表并且通常键入未在连接中使用的列,则需要为连接更改X的键,然后在连接后恢复为原始键.有没有一种有效的方法来进行连接,而不会丢失X上的原始主键?
我有一个大的时间序列环境数据集DT(1M行,36列),作为data.table,在站点和日期列上有键.我需要对DT中的现有列进行计算和/或使用小型查找或重新编码表基于现有列插入新列.
这是一个最小的例子:
require(data.table) # using v1.9.5
# main data table DT, keyed on site and date, with data column x
DT <- data.table(site = rep(LETTERS[1:2], each=3),
date = rep(1:3, times=2),
x = rep(1:3*10, times=2),
key = "site,date")
DT
# site date x
# 1: A 1 10
# 2: A 2 20
# 3: A 3 30
# 4: B 1 10
# 5: B 2 20
# 6: B 3 30
# lookup table for x …Run Code Online (Sandbox Code Playgroud) 我的手机正在连接蓝牙设备,工作正常.它连接并且连接成立.我可以更改方向,在后台安装我的应用程序,我可以关闭应用程序,当我将其重新打开时,它将自动连接.但是从应用程序用户那里我得到一些报告说连接在一段时间后丢失(没有检测到模式).我试图重新创建这个,但没有运气.因此,为了避免此问题,我想在连接丢失时实现自动重新连接到之前选择的设备.
我做了一些研究,可以通过实现一个可以检测到的广播接收器来完成: android.bluetooth.device.action.ACL_DISCONNECTED
我的问题是:
感谢您的回答.
蓝牙服务代码:
public class BluetoothService
{
// Debugging
private static final String TAG = "BluetoothService";
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
// Member fields
private final BluetoothAdapter mAdapter;
private final Handler mHandler;
private final Context mContext;
private ConnectThread mConnectThread;
private ConnectedThread mConnectedThread;
private int mState;
// Constants that indicate the current connection state
public static final int STATE_NONE = 0; // we're doing nothing
public static final int STATE_CONNECTING = 1; // now …Run Code Online (Sandbox Code Playgroud) 我想使用相同的ggplot代码生成8个不同的数字,条件是我的数据框中的数字.通常我会使用facet_grid,但在这种情况下,我想得到每个人的数字的pdf.例如,我想在这里每行一个pdf:
df <- read.table(text = "
xvalue yvalue location planting crop
1 5 A early corn
2 3 A late corn
6 2 A early soy
7 4 A late soy
4 7 S early corn
2 6 S late corn
3 2 S early soy
5 1 S late soy
", sep = "", header = TRUE)
Run Code Online (Sandbox Code Playgroud)
基本ggplot:
library(ggplot2)
ggplot()+
geom_point(aes(x=xvalue, y=yvalue), data=df)
Run Code Online (Sandbox Code Playgroud)
但是不是facet_grid为了获得x种植x作物组合的位置,我想要一个单独的pdf.
如何将任何(不相关的)图例映射到现有的ggplot?
免责声明:请不要恨我.我知道使用'ggplot2'创建图例的最佳方法是正确地映射您的数据,我99%的时间都这样做.然而,我要求的东西通常可以给我任何我想要的传奇.
从这段代码创建:
set.seed(42)
temp1 = cbind.data.frame(begin = rnorm(10, 0, 1), end = rnorm(10, 2, 1), y1 = 1:10, y2 = 1:10, id = as.character(1:10))
temp2 = cbind.data.frame(x = 0:2, y = 1:3*2)
temp3 = cbind.data.frame(x = seq(0.5, 1.5, 0.33))
temp = c()
plot1 = ggplot(data = temp, aes(x = x)) +
geom_vline(data = temp3, aes(xintercept = x), color = "red", linetype = "longdash") +
geom_segment(data = temp1, aes(y = y1, yend = y2, x = begin, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ggplot2控制图
示例脚本:
dat1 <- data.frame(
sex = factor(c("Female","Female","Male","Male")),
time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(13.53, 16.81, 16.24, 17.42)
)
p = ggplot(data=dat1, aes(x=sex, y=total_bill, group=time, shape=time, color=time)) + geom_line() + geom_point()
Run Code Online (Sandbox Code Playgroud)
现在,我要控制形状和线条在图例中的外观。我想要更大的形状,并且传奇中的细线。但是我不能同时执行两者。
如果我做,
p = p + guides(colour = guide_legend(override.aes = list(size=5)))
Run Code Online (Sandbox Code Playgroud)
线条和形状都较粗,类似于图B。
如果我做,
p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0)))
Run Code Online (Sandbox Code Playgroud)
然后形状以正确的大小出现,但线条消失(图A)。我尝试了类似的尝试,但未成功。
p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0.5)))
Run Code Online (Sandbox Code Playgroud)
如何在图例中实现大形状和细线?
可能有一种简单的方法来执行此操作,但是我不确定它是什么。我正在尝试使图例中的文本与其旁边的颜色框匹配。我已经尝试了一段时间,但没有找到使用element_text函数向图例添加多种颜色的方法。我使每个标签都具有相同的颜色没有问题,但是有没有办法使每个图例标签具有不同的颜色?
data<-data.frame(count=c(39,36,19,6), category=c("a","b","c","d"))
data$fraction = data$count / sum(data$count)
data = data[order(data$fraction), ]
data$ymax = cumsum(data$fraction)
data$ymin = c(0, head(data$ymax, n=-1))
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Create Plot
fill <- c("blue3","cyan3","darkgrey","forestgreen")
library(ggplot2)
p1 = ggplot(data, aes(fill=category, ymax=ymax, ymin=ymin, xmax=4, xmin=3.5)) +
geom_rect(colour="White") +
coord_polar(theta="y") +
scale_fill_manual(values=fill)+
theme_bw()+
geom_label(aes(label=paste(data$fraction*100,"%"),x=4,y=
(ymin+ymax)/2),inherit.aes = F)+
theme(panel.grid=element_blank())+
theme(axis.ticks=element_blank()) +
xlim(c(0, 4)) +
theme(axis.text=element_blank()) +
theme(legend.text=element_text(color=fill,size=12))+
theme(legend.key.size=unit(2,'lines'))+
theme(legend.key=element_rect(size=5))+
labs(title="donut plot")
print(p1)
Run Code Online (Sandbox Code Playgroud)