我有一个矢量:
x<-c(1,1,1,1,2,3,5,1,1,1,2,4,9)
y<-length(x)
我想绘制这样的图,使每个值分别绘制而不是绘制计数。
所以基本上每个值都应该在图中单独表示,其中x轴的长度等于y
,并且每个值都绘制在y轴上。
如何使用qplot完成此操作?
表示矩阵:
a<-matrix(NA, ncol=3, nrow=100)
a[,1]<-1:100
a[,2]<-rnorm(100)
a[,3]<-rnorm(100)
a<-melt(as.data.frame(a),id.vars="V1")
ggplot(一,AES(seq_along(a)所示,))+ geom_bar(STAT = “同一性”)+ facet_wrap(V1)
答案 0 :(得分:11)
使用ggplot2
将x作为y值,并沿x轴的x值生成序列。
ggplot(data.frame(x),aes(seq_along(x),x))+geom_bar(stat="identity")
如果你有矩阵a
,你需要为每一行制作图,然后将其融化,然后使用variable
表示x轴,value
表示y轴
a<-melt(as.data.frame(a),id.vars=1)
ggplot(a,aes(variable,value))+geom_bar(stat="identity")+facet_wrap(~V1)
答案 1 :(得分:1)
简单解决方案:
barplot(x,xlim = c(0,15), ylim = c(0,10))
根据向量长度缩放xlim和ylim
答案 2 :(得分:0)
您也可以尝试这一点,而无需明确创建ggplot() + geom_bar(aes(x=seq_along(x),y=x), stat='identity') + xlab('x') + ylab('y')
:
public static void init(String h){
host=h;
connected=false;
instance = new Client();
new Thread(new Runnable() {
@Override
public void run() {
group = new NioEventLoopGroup();
try{
bootstrap = new Bootstrap()
.group(group)
.channel(NioSocketChannel.class)
.handler(instance);
channel = bootstrap.connect(host,PORT).sync().channel();
connected=true;
} catch (Exception e) {
if (notifier!=null){
notifier.onServerNoLongerReachable();
}
e.printStackTrace();
}
}
}).start();
}
public static void setNotifier(ClientInterface notif){
notifier = notif;
}