我正在创建一个R脚本来生成由多行组成的图表.我已经制作了一个基本的图表,并设法平滑每条绘制的线条.但是,我想通过执行以下操作来美化图表:
目前,每条线都被绘制为平滑线.我想使用其他一些线型绘制平滑线,例如点划线,破折号 - 点划线等.
我想在图表中添加图例,并在图例中显示一条线(与主图表中的线相同的颜色).
指定主图表标题x和y的字体大小
这是我到目前为止:
dat <- read.csv(filename, sep=',')
xvals <- dat$xvals
y1 <- dat$y1
y2 <- dat$y2
y3 <- dat$y3
y4 <- dat$y4
y5 <- dat$y5
y6 <- dat$y6
lo1 <- loess(y1~xvals)
lo2 <- loess(y2~xvals)
lo3 <- loess(y3~xvals)
lo4 <- loess(y4~xvals)
lo5 <- loess(y5~xvals)
lo6 <- loess(y6~xvals)
plot(xvals,y1, xlab='X label', ylab='Y label', type='n')
xl <- seq(min(xvals),max(xvals), (max(xvals) - min(xvals))/1000)
lines(xl, predict(lo1,xl), col='gray', lwd=1)
lines(xl, predict(lo2,xl), col='pink', lwd=1)
lines(xl, predict(lo3,xl), col='red', lwd=1)
lines(xl, predict(lo4,xl), col='cyan', lwd=1)
lines(xl, predict(lo5,xl), …Run Code Online (Sandbox Code Playgroud) 我想做一个相对简单的情节(让人想起如下的时间线:http://www.ats.ucla.edu/stat/sas/code/timeline.gif),但不是时间在x轴上,它将成为基因组中的基础位置."时间跨度"将是DNA序列支架的覆盖距离,显示它们落入基因组的范围,它们重叠的位置和没有覆盖的位置.这是我正在寻找的粗略模型,显示rRNA的重叠群覆盖,(我遗漏了,但需要,x轴显示开始和停止的位置,以及重叠群的标记(彩色线)): http://i.imgur.com/MDABx.png,具有以下坐标:
Contig# Start1 Stop1 Start2 Stop2 Start3 Stop3 Start4 Stop4
1 1 90 90 100 120 150 200 400
2 1 100 120 150 200 400 NA NA
3 1 30 90 100 120 135 200 400
4 1 100 120 140 200 400 NA NA
5 -35 80 90 100 130 150 200 400
6 1 100 200 300 360 400 NA NA
Run Code Online (Sandbox Code Playgroud)
我很确定这可以在R中完成,可能使用ggplot2,但由于某种原因我无法弄明白.
我试图绘制一个对数刻度,但我继续得到这个错误:
Error in plot.window(...) : invalid "log=1/h" specification.
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么.以下是我的代码:
#function
function(stepsize, temp_val, counter) {
while(counter < 0) {
counter <- counter + stepsize
px_norm <- dnorm(counter, mean = 0, sd = .04)
temp_val <- temp_val + px_norm }
temp_val <- 2*temp_val
temp_val <- temp_val *(stepsize/2)
print(temp_val, digits = 12)
}
#Initial step size
h <- .01
while (h > .00001) {
x <- calc_error(h, 0, -5) #Gives me a result around .5
err <- x - (exp(-.02)*0.5)
plot(1/h, err, log …Run Code Online (Sandbox Code Playgroud) 我编写了以下matlab函数
function [t x] = MSD(xo, z, fo, c)
T = 1/fo; t = 0:T/10:10*T; fd = fo * sqrt(1-z*z);
wo = 2*pi*fo; w1 = wo * z; wd = 2*pi * fd;
x = xo * exp(-w1*t) .* cos(wd*t);
grid on;
plot(t,x,c);
xlabel('time [s]');
ylabel('displacement');
s = sprintf('unforced Mass-Spring Damper [damped freq: %.3f Hz]', fd); title(s);
end
Run Code Online (Sandbox Code Playgroud)
当我运行它时,命令窗口中出现以下错误:
MSD(.1, .7,.4, .2)
??? Error using ==> plot
Data must be a single matrix Y or a list of pairs X,Y …Run Code Online (Sandbox Code Playgroud) 好吧,我有以下功能
y=sin(x)^2 + [(10+2x+x^2) / (5+2x^2)]
Run Code Online (Sandbox Code Playgroud)
我需要在y = -2到y = 2的区间绘制它,那我该如何设置呢?
我在matlab中做到了这一点
>> y = sin(x).^2 + (10 + 2*x + x.^2)/(5+2*x.^2)
>> x = -2:0.01:2;
Run Code Online (Sandbox Code Playgroud)
这是正确的设置吗?或者我做错了什么
我有ctlns列表,我正在尝试生成一些数据的可视化
ctlns<-list(structure(list(level = 10, x = c(0.101666666666667, 0.06,
0.0385714285714286, 0.035, 0.035, 0.035, 0.04, 0.0433333333333333,
0.05, 0.0516666666666667, 0.06, 0.0606416584402764, 0.0606416584402764,
0.0766666666666667, 0.0766666666666667, 0.0933333333333333, 0.0933333333333333,
0.0975, 0.11, 0.110956351152526, 0.110956351152526, 0.135, 0.135
), y = c(0.01, 0.04125, 0.06, 0.11, 0.16, 0.21, 0.26, 0.31, 0.36,
0.41, 0.458123195380173, 0.46, 0.51, 0.56, 0.61, 0.66, 0.71,
0.76, 0.808123195380173, 0.81, 0.86, 0.91, 0.96)), .Names = c("level",
"x", "y")))
Run Code Online (Sandbox Code Playgroud)
然后我,
plot(ctlns[[1]]$x,ctlns[[1]]$y, xlim=c(0,.21), ylim=c(0,1), lwd=2, type="l", col="darkred" )
Run Code Online (Sandbox Code Playgroud)
我得到了情节

我想平滑红色曲线的上半部分(y> 0.2),同时保持一些弯曲结构(y <0.2)
lines(lowess(ctlns[[1]]$x,ctlns[[1]]$y,f=2/3), lwd=2, col="darkblue")
Run Code Online (Sandbox Code Playgroud)
对于前一部分做得很好,但删除了曲线的下半部分.我有以下问题:
我有一个简单的情节电话:
cdplot(example~test)
Run Code Online (Sandbox Code Playgroud)
我想让轴的字体更大.然而,
cdplot(example~test, cex=2.0)
Run Code Online (Sandbox Code Playgroud)
不起作用,我找不到解决方案.如何增加字体大小?
我怎样才能dotchart在ggplot2中绘制像格子一样的点图,它有更粗的网格线和只有水平网格线(即删除垂直网格线),有点像这样:

除了使水平线更大胆以使它们更加明显.
有没有办法在ggplot2中这样做?
我想绘制以下内容
y=linspace(0,D,100)
temp=y^2;
plot(y,temp);
Run Code Online (Sandbox Code Playgroud)
我得到一个错误y^2,它说矩阵应该是正方形.
是否有另一种绘图方式.
我的数据看起来像这样.
我目前的代码在这里
library(ggplot2)
library(RColorBrewer)
pal <- c(brewer.pal(8,"Dark2"),brewer.pal(12,"Paired"));
dat<-read.table("http://dpaste.com/1051194/plain/",header=TRUE)
dat.sub <- data.frame(dat$Function,dat$Freq)
ggplot(dat.sub,aes(dat.Freq,color=dat.Function),shape=dat.Function)+ stat_density(geom="path",position="identity",size=0.5)
Run Code Online (Sandbox Code Playgroud)
生成如下数字:

请注意,图例文本的长度会导致主图被挤压.处理这个问题的最佳方法是什么,以使数字看起来正常,传说中也显示了它的完整性?