我正在寻找一种方法来修改ggplot中的字体类型.目前我很乐意简单地将字体更改为'courier'字体系列,但最终我的目标是调用自定义字体模板 - 对后一点的任何输入都将非常感激.
我做了一些功课,看了下面的帖子和文章:
这可能是因为我仍然是ggplot2的无望业余爱好者,但我甚至无法将图表字体切换为快递.有帮助吗?我已经在下面列出了相关图表的数据以及代码,所以希望这很容易理解.
我是R/ggplot的新手.我想创建一个连续变量时间序列的geom_line图,然后添加一个由事件组成的图层.连续变量及其时间戳存储在一个data.frame中,事件及其时间戳存储在另一个data.frame中.
我真正想做的是像finance.google.com上的图表.在那些,时间序列是股票价格,并有"标志"来表示新闻事件.我实际上并没有绘制财务资料,但图表的类型是相似的.我试图绘制日志文件数据的可视化.这是我的意思的一个例子......

如果可取(?),我想为每一层使用单独的data.frames(一个用于连续变量观察,另一个用于事件).
经过一些试验和错误,这是我能得到的尽可能接近.在这里,我使用ggplot附带的数据集中的示例数据."经济学"包含一些我想绘制的时间序列数据,"总统"包含一些事件(总统选举).
library(ggplot2)
data(presidential)
data(economics)
presidential <- presidential[-(1:3),]
yrng <- range(economics$unemploy)
ymin <- yrng[1]
ymax <- yrng[1] + 0.1*(yrng[2]-yrng[1])
p2 <- ggplot()
p2 <- p2 + geom_line(mapping=aes(x=date, y=unemploy), data=economics , size=3, alpha=0.5)
p2 <- p2 + scale_x_date("time") + scale_y_continuous(name="unemployed [1000's]")
p2 <- p2 + geom_segment(mapping=aes(x=start,y=ymin, xend=start, yend=ymax, colour=name), data=presidential, size=2, alpha=0.5)
p2 <- p2 + geom_point(mapping=aes(x=start,y=ymax, colour=name ), data=presidential, size=3)
p2 <- p2 + geom_text(mapping=aes(x=start, y=ymax, label=name, angle=20, hjust=-0.1, vjust=0.1),size=6, data=presidential)
p2
Run Code Online (Sandbox Code Playgroud)

问题:
这对于非常稀疏的事件是可以的,但是如果它们有一个集群(通常发生在日志文件中),它就会变得混乱.是否有一些技术可以用来整齐地显示在短时间间隔内发生的一系列事件?我在考虑使用position_jitter,但这对我来说真的很难.谷歌图表将这些事件"标志"叠加在一起,如果它们有很多的话.
我实际上不喜欢以与连续测量显示相同的比例粘贴事件数据.我宁愿把它放在facet_grid中.问题是所有facet都必须来自相同的data.frame(不确定是否为真).如果是这样,那似乎也不理想(或者我只是想避免使用重塑?)
假设我有以下内容 data.frame foo
start.time duration
1 2012-02-06 15:47:00 1
2 2012-02-06 15:02:00 2
3 2012-02-22 10:08:00 3
4 2012-02-22 09:32:00 4
5 2012-03-21 13:47:00 5
Run Code Online (Sandbox Code Playgroud)
并class(foo$start.time)返回
[1] "POSIXct" "POSIXt"
Run Code Online (Sandbox Code Playgroud)
我想创建一个foo$durationv.的情节foo$start.time.在我的场景中,我只对一天中的时间而不是一年中的实际日期感兴趣.如何将一天中的时间提取为几小时:来自POSIXct矢量类的秒数?
我认为这里的问题有点明显.我希望将图例放置(锁定)在"绘图区域"的左上角.出于多种原因,使用c(0.1,0.13)等不是一种选择.
有没有办法改变坐标的参考点,使它们相对于绘图区域?
mtcars$cyl <- factor(mtcars$cyl, labels=c("four","six","eight"))
ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + geom_point(aes(colour=cyl)) +
opts(legend.position = c(0, 1), title="Legend placement makes me sad")
Run Code Online (Sandbox Code Playgroud)

干杯
背景
在德国,有16个联邦州,其中10个属于西德,其中6个属于东德.在某些方面,例如某些癌症的死亡率,十个前西方国家和六个前东方国家之间存在持续差异.各组内各州之间也存在差异.
为了显示各州之间的差异,从每个州绘制数据,例如按年份划分的年龄标准化乳腺癌死亡率,可以产生一定的意义.16行的情节并不总是一个不错的选择,我不想打开讨论.有时,权力可以说是必须的.
问题
在情节上区分16条线可能很困难.为此,我通常使用RColorBrewer包中的颜色组合(前十种颜色Set3再加上该调色板的前六种颜色,对应于前十个西部和六个前东部状态)和线型(一种线型为东,一个西.)使用该lattice方案,各州1998 - 2010年年龄标准化乳腺癌死亡率的情节可能如下:

这个问题
我想做一个类似的情节使用ggplot,但我还没想出如何组合图例中的颜色和线条类型.到目前为止,我已经走到了这一步:

如果可以在ggplot图例中组合颜色和线条类型,那么如何去做呢?
这是创建数据框和图的代码:
mort3 <- structure(list(State = structure(c(8L, 9L, 11L, 12L, 4L, 2L,
6L, 13L, 3L, 5L, 7L, 10L, 14L, 15L, 1L, 16L, 8L, 9L, 11L, 12L,
4L, 2L, 6L, 13L, 3L, 5L, 7L, 10L, 14L, 15L, 1L, 16L, 8L, 9L,
11L, 12L, 4L, 2L, 6L, 13L, 3L, 5L, 7L, 10L, 14L, 15L, 1L, 16L,
8L, 9L, 11L, 12L, 4L, 2L, 6L, …Run Code Online (Sandbox Code Playgroud) 我有以下数据,我想用ggplot绘制:
SC_LTSL_BM 16.8275
SC_STSL_BM 17.3914
proB_FrBC_FL 122.1580
preB_FrD_FL 18.5051
B_Fo_Sp 14.4693
B_GC_Sp 15.4986
Run Code Online (Sandbox Code Playgroud)
我想要做的是制作条形图并保持条形的顺序(即从开始SC_LTSL_BM ...B_GC_Sp).但ggplot geom_bar的默认行为是对它们进行排序.我怎么能避免这种情况?
library(ggplot2)
dat <- read.table("http://dpaste.com/1469904/plain/")
pdf("~/Desktop/test.pdf")
ggplot(dat,aes(x=V1,y=V2))+geom_bar()
dev.off()
Run Code Online (Sandbox Code Playgroud)
目前的数字如下:

我对ggplot2中的传说有疑问.
假设我有一个关于两个农场两种不同颜色的平均胡萝卜长度的假设数据集:
carrots<-NULL
carrots$Farm<-rep(c("X","Y"),2)
carrots$Type<-rep(c("Orange","Purple"),each=2)
carrots$MeanLength<-c(10,6,4,2)
carrots<-data.frame(carrots)
Run Code Online (Sandbox Code Playgroud)
我做了一个简单的条形图:
require(ggplot2)
p<-ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) +
geom_bar(position="dodge") +
opts(legend.position="top")
p
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法从图例中删除标题('类型')?
谢谢!
我有一个3列矩阵; 图表是基于第1列和第2列值的点,但是基于第2列(6个不同的组)着色.我可以成功地绘制所有点,但是,最后一个分组颜色为紫色的绘图组(组6)掩盖了其他组的绘图.有没有办法让情节点更透明?
s <- read.table("/.../parse-output.txt", sep="\t")
dim(s)
[1] 67124 3
x <- s[,1]
y <- s[,2]
z <- s[,3]
cols <- cut(z, 6, labels = c("pink", "red", "yellow", "blue", "green", "purple"))
plot(x, y, main= "Fragment recruitment plot - FR-HIT", ylab = "Percent identity", xlab = "Base pair position", col = as.character(cols), pch=16)
Run Code Online (Sandbox Code Playgroud) 在这个箱线图中我们可以看到平均值但是我们怎么能在每个箱形图的每个平均值上都有图表上的数值?
ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() +
stat_summary(fun.y=mean, colour="darkred", geom="point",
shape=18, size=3,show_guide = FALSE)
Run Code Online (Sandbox Code Playgroud) 曾几何时,我ggplot2使用windowsFonts(Times=windowsFont("TT Times New Roman"))改变它来改变我的字体.现在我无法理解这一点.
在尝试设置family=""时ggplot2 theme()我似乎无法生成字体更改,因为我使用不同的字体系列编译下面的MWE.
library(ggplot2)
library(extrafont)
loadfonts(device = "win")
a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
ggtitle("Fuel Efficiency of 32 Cars") +
xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
theme(text=element_text(size=16,
# family="Comic Sans MS"))
# family="CM Roman"))
# family="TT Times New Roman"))
# family="Sans"))
family="Serif"))
print(a)
print("Graph should have refreshed")
Run Code Online (Sandbox Code Playgroud)
R正在返回一个警告font family not found in Windows font database,但有一个我正在关注的教程(如果我能再次找到它,我将在这里更新链接)说这是正常的而不是问题.此外,这在某种程度上起作用,因为我的图表曾经使用过一些arial或helvitica类型的字体.我认为即使在最初的迁移期间,这也始终是一个警告.
UPDATE
当我运行windowsFonts()我的输出是
$ serif [1]"TT Times …