2012-03-16 60 views
2

我有一个数据框有日期,磁盘读取和磁盘写入数据。我能够创建堆栈图,但xaxis上的日期不可读。在qplot中是否有一个选项可以缩放图形或不显示所有日期或其他内容?我已经看了很长时间了,我找不到答案。xaxis上的日期是不可读的

我融化了第一

app1_diskIO.M<-melt(app1_diskIO.M, id=c("Date2")) 

qplot(x = factor(Date2), y = value, data = app1_diskIO.M, geom = "bar", fill = variable, main="DISK IO", xlab="Date", ylab="Disk IO") 

数据帧是这样的:

 Date2 DiskReads DiskWrites 
1 2011-12-06 136382.2 78961.0 
2 2011-12-07 146277.0 77802.0 
3 2011-12-08 141123.6 76219.0 
4 2011-12-09 139219.8 77649.4 
5 2011-12-10 72101.1 35258.6 
6 2011-12-11 229445.9 92316.6 
7 2011-12-12 175886.7 86087.0 
8 2011-12-13 134958.3 76605.6 
9 2011-12-14 133972.1 75141.4 
10 2011-12-15 147175.2 77189.7 
11 2011-12-16 143542.3 78155.9 
12 2011-12-17 152579.1 68395.2 
13 2011-12-18 168667.7 69720.1 
14 2011-12-19 152328.6 75994.2 
15 2011-12-20 135061.8 75271.6 
16 2011-12-21 153455.0 78197.5 
17 2011-12-22 130020.8 73369.7 
18 2011-12-23 131423.6 73484.9 
19 2011-12-24 135285.6 65081.4 
20 2011-12-25 137185.4 63334.8 
21 2011-12-26 132612.9 70484.4 
22 2011-12-27 155396.9 79239.1 
23 2011-12-28 151587.5 77986.5 
24 2011-12-29 122076.5 71575.5 
25 2011-12-30 146888.8 75376.3 
26 2011-12-31 141285.5 69737.8 
27 2012-01-01 206306.6 78059.4 
28 2012-01-02 134002.4 73062.5 
29 2012-01-03 137753.8 76947.4 
30 2012-01-04 150655.8 78836.3 
31 2012-01-05 151750.3 79300.9 
32 2012-01-06 141464.8 77529.4 
33 2012-01-07 137667.3 66344.8 
34 2012-01-08 120998.5 60582.4 
35 2012-01-09 133422.4 73688.3 
36 2012-01-10 134247.7 75664.5 
37 2012-01-11 146243.5 79042.2 
38 2012-01-12 178738.2 84199.7 
39 2012-01-13 145564.8 77908.2 
40 2012-01-14 135966.8 65900.9 
41 2012-01-15 136448.4 63339.9 
42 2012-01-16 186109.9 83348.6 
43 2012-01-17 146906.5 78645.6 
44 2012-01-18 106343.0 69313.6 
45 2012-01-19 197205.6 88411.6 
46 2012-01-20 132950.1 73078.0 
47 2012-01-21 137488.1 68711.5 
+1

而不是剪切和粘贴你的数据框的样子,运行命令'dput(app1_diskIO.M)'这将输出代码来构建你的数据框。每个人都可以将其剪切并粘贴到他们的R. – nograpes 2012-03-16 17:43:43

+0

你需要看看dput输出吗? – user1272594 2012-03-16 17:53:26

回答

1

如何旋转的日期是垂直的,这使得他们一点更清晰:

qplot(x = factor(Date2), y = value, data = app1_diskIO.M, 
    geom = "bar", fill = variable, main = "DISK IO", 
    xlab = "Date", ylab = "Disk IO") + 
    opts(axis.text.x = theme_text(angl e =-90)) 

enter image description here

您还可以缩小字体大小(这是你的意思吗?),但这并没有使它更容易阅读。要做到这一点,在opts

qplot(x = factor(Date2), y = value, data = app1_diskIO.M, 
    geom = "bar", fill = variable, main = "DISK IO", 
    xlab = "Date", ylab = "Disk IO") + 
    opts(axis.text.x = theme_text(angle = -90, size = 5)) 

删除所有刻度标记和标签添加size参数X轴(这样你就不会显示任何日期,您的要求,也许你可以使用一个图形编辑把别的东西在那里),试试这个:

qplot(x = factor(Date2), y = value, data = app1_diskIO.M, 
    geom = "bar", fill = variable, main = "DISK IO", 
    xlab = "Date", ylab = "Disk IO") + 
    opts(axis.ticks = theme_blank(), axis.text.x = theme_blank()) 

UPDATE:要空间出来的X轴标签,说的是每十天,照你的意见,试试这个:

app1_diskIO.M$Date2 <- as.Date(app1_diskIO.M$Date2) 
qplot(x = Date2, 
     y = value, data = app1_diskIO.M, 
     geom = "line", colour = variable, 
     main="DISK IO", xlab="Date", 
     ylab="Disk IO") + 
     scale_x_date(breaks = "10 days") + 
     opts(axis.text.x = theme_text(angle = -90)) 

这应该给你:

enter image description here

有用的网站具有良好的指示做这种东西:http://wiki.stdout.org/rcookbook/Graphs/Axes%20(ggplot2)/

先导,以更新的GGPLOT2 0.9是非常方便的太,有很多很好的例子:http://cloud.github.com/downloads/hadley/ggplot2/guide-col.pdf

相关问题:need to create a stack bar chart

+0

仍然xaxis不可读,有没有一种方法可能是每10天的日期? – user1272594 2012-03-16 18:09:27

+0

已更新,是否有用? – Ben 2012-03-16 18:56:09

+0

我得到这个错误:get(x,envir = this,inherits = inh)(this,...)中的错误: 未使用的参数(s)(breaks =“10 days”) – user1272594 2012-03-19 13:16:30