通过使用R,是否可以将2 ggplot放在一起(即,在同一图上)?我希望显示来自2个不同的数据帧趋势,而不是把他们一个挨着另一个,我想他们在一个情节集成在一起,只改变其中一个颜色(黑点).
更具体地说,我有以下2个视觉效果:
ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="blue", colour="darkblue", size=1)
Run Code Online (Sandbox Code Playgroud)
和
ggplot(visual2, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="red", colour="red", size=1)
Run Code Online (Sandbox Code Playgroud)
他们看起来像这样(两个都有黑点,我需要将其中一个更改为不同的东西):

和

我有一个3D数据集:
data = data.frame(
x = rep( c(0.1, 0.2, 0.3, 0.4, 0.5), each=5),
y = rep( c(1, 2, 3, 4, 5), 5)
)
data$z = runif(
25,
min = (data$x*data$y - 0.1 * (data$x*data$y)),
max = (data$x*data$y + 0.1 * (data$x*data$y))
)
data
str(data)
Run Code Online (Sandbox Code Playgroud)
我想绘制它,但R alwyas的内置函数给出了错误
增加'x'和'y'值预期
# ### 3D Plots ######################################################
# built-in function always give the error
# "increasing 'x' and 'y' values expected"
demo(image)
image(x = data$x, y = data$y, z = data$z)
demo(persp)
persp(data$x,data$y,data$z)
contour(data$x,data$y,data$z)
Run Code Online (Sandbox Code Playgroud)
当我在互联网上搜索时,我发现当X和Y值的组合不唯一时会发生此消息.但在这里他们是独一无二的 …
我正在使用R的绘图功能绘制下面的图.它是时间偏移的矢量'shiftTime'的图.我有另一个强度值的矢量'强度',范围从~3到~9.我想基于具有颜色渐变的那些值在绘图中为我的点着色.我可以在实际绘制点的值上找到颜色的示例,因此在这种情况下,矢量'shiftTime'的值.是否也可以使用不同的向量,只要相应的值在同一个索引上?

我有以下脚本,它假设创建一个包含两个列图例的图.
#!/usr/bin/Rscript
library(ggplot2)
library(plyr)
library(reshape2)
library(scales)
file <- "http://dpaste.com/1354089/plain/";
dat <-read.table(file,header=TRUE);
datm <- melt(dat)
# Plot them
ggplot(datm,aes(x = variable,y = value,fill = Term)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = percent_format())+
theme(legend.direction ="vertical",legend.position = "bottom")+
guides(color=guide_legend(ncol=2))+ # this doesn't seem to work
ggsave(file="~/Desktop/test.pdf",width=11,height=11)
Run Code Online (Sandbox Code Playgroud)
但它创造了这个数字

我该怎么做才能正确?
如果你想在较大的一个中插入一个小图,你可以使用Axes,就像这里一样.
问题是我不知道如何在子图中做同样的事情.
我有几个子图,我想在每个子图中绘制一个小图.示例代码将是这样的:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
for i in range(4):
ax = fig.add_subplot(2,2,i)
ax.plot(np.arange(11),np.arange(11),'b')
#b = ax.axes([0.7,0.7,0.2,0.2])
#it gives an error, AxesSubplot is not callable
#b = plt.axes([0.7,0.7,0.2,0.2])
#plt.plot(np.arange(3),np.arange(3)+11,'g')
#it plots the small plot in the selected position of the whole figure, not inside the subplot
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
提前致谢!
我有一组这样的数据记录:
(s1, t1), (u1, v1), color1
(s2, t2), (u2, v2), color2
.
.
.
(sN, tN), (uN, vN), colorN
Run Code Online (Sandbox Code Playgroud)
在任何记录中,前两个值是线段的终点,第三个值是该线段的颜色.更具体地说,(sn, tn)第一个端点(un, vn)的xy坐标是第二个端点的xy坐标.此外,颜色是具有alpha值的rgb.
通常,任何两个线段都是断开的(意味着它们的端点不一定重合).
如何使用matplotlib使用单个plot调用(或尽可能少)来绘制此数据,因为可能存在数千条记录.
在一个大列表中准备数据并对其进行调用plot太慢了.例如,以下代码无法在合理的时间内完成:
import numpy as np
import matplotlib.pyplot as plt
data = []
for _ in xrange(60000):
data.append((np.random.rand(), np.random.rand()))
data.append((np.random.rand(), np.random.rand()))
data.append('r')
print 'now plotting...' # from now on, takes too long
plt.plot(*data)
print 'done'
#plt.show()
Run Code Online (Sandbox Code Playgroud)
我能够使用None …
我有一个如下所示的数据框
color x y
0 red 0 0
1 red 1 1
2 red 2 2
3 red 3 3
4 red 4 4
5 red 5 5
6 red 6 6
7 red 7 7
8 red 8 8
9 red 9 9
10 blue 0 0
11 blue 1 1
12 blue 2 4
13 blue 3 9
14 blue 4 16
15 blue 5 25
16 blue 6 36
17 blue 7 49
18 blue 8 64 …Run Code Online (Sandbox Code Playgroud) 我知道这个问题可能是陈词滥调,但我很难做到这一点.
我的数据集采用以下格式:
Date Visits
11/1/2010 696537
11/2/2010 718748
11/3/2010 799355
11/4/2010 805800
11/5/2010 701262
11/6/2010 531579
11/7/2010 690068
11/8/2010 756947
11/9/2010 718757
11/10/2010 701768
11/11/2010 820113
11/12/2010 645259
我想创建一个时间序列图,x轴代表时间和y轴vists.另外,我想用日期标记x轴.我使用的代码如下:
dm$newday = as.POSIXct(strptime(dm$Day, format="%Y-%m-%d"))
plot(as.Date(dm$day),dm$visits)
axis.Date(1,Day,at=seq(as.Date("2010/10/30"), as.Date("2011/01/29"),by="days"))
Run Code Online (Sandbox Code Playgroud) 我想在ggplot中添加一个突出显示的站点坐标表.
使用上一个问题作为示例数据:
set.seed(1)
mydata <- data.frame(a=1:50, b=rnorm(50))
ggplot(mydata,aes(x=a,y=b)) +
geom_point(colour="blue") +
geom_point(data=mydata[10:13, ], aes(x=a, y=b), colour="red", size=5)
Run Code Online (Sandbox Code Playgroud)

我想将下表添加到绘图区域内绘图的右下角.有什么建议?
table<-cbind(sites=c("site 1","site 2","site 3","site 4"),mydata[10:13,])
table
sites a b
site 1 10 -0.3053884
site 2 11 1.5117812
site 3 12 0.3898432
site 4 13 -0.6212406
Run Code Online (Sandbox Code Playgroud) 我一直试图从CSV文件中绘制时间序列图.我已经设法读取文件并使用字符串将数据从字符串转换为日期strptime.当我尝试使用包含日期信息的列表在matplotlib中绘制测试图时,它将日期绘制为一系列点; 也就是说,对于2012年5月31日19:00的日期,我在y轴上获得了2012,05,19,31,00处的点的图,其中x = 1的值等等.我知道这不是传递绘图日期信息的正确方法.有人能告诉我如何正确传递这些信息.