在R中绘制data.frame

dig*_*axp 3 plot r dataframe

我是R的新手,我需要建议在R中绘制一个如下所示的数据帧:

         V1          V2         V3          V4         
          1       Mazda     Toyota     Peugeot
   Car1.txt 0,507778837 0,19834711 0,146892655
   Car2.txt 0,908717802 0,64214047 0,396508728
Run Code Online (Sandbox Code Playgroud)

我想在一个图中绘制这个数据帧(实际上有7列和95行),其中v2,v3,v4代表一条不同颜色的线,并命名为汽车名称,V1作为x-的标签轴,而y轴在[0,1]范围内.

我真的不知道如何做到这一点,所以我非常感谢任何建议

Ric*_*ton 8

医生对罗马的数据框进行了略微修改.

library(ggplot2)
my.cars <- data.frame(
  Toyota = runif(50), 
  Mazda = runif(50), 
  Renault = runif(50),
  Car = paste("Car", 1:50, ".txt", sep = "")  
)

my.cars.melted <- melt(my.cars, id.vars = "Car")
Run Code Online (Sandbox Code Playgroud)

然后他建议看起来汽车变量是绝对的,所以你的第一选择是条形图.

p_bar <- ggplot(my.cars.melted, aes(Car, value, fill = variable)) +
  geom_bar(position = "dodge")
p_bar
Run Code Online (Sandbox Code Playgroud)

然后他指出,对于95辆汽车来说,这可能会有点麻烦.也许点图更合适.

p_dot <- ggplot(my.cars.melted, aes(Car, value, col = variable)) +
  geom_point() +
  opts(axis.text.x = theme_text(angle = 90))
p_dot
Run Code Online (Sandbox Code Playgroud)

因为从中获取有用信息仍然有点棘手,最好按平均值订购汽车(无论价值是多少)

my.cars.melted$Car <- with(my.cars.melted, reorder(Car, value))
Run Code Online (Sandbox Code Playgroud)

(然后p_dot像以前一样重绘.)

最后,医生指出你可以绘制罗马推荐的线图

p_lines <- ggplot(my.cars.melted, aes(as.numeric(Car), value, col = variable)) +
  geom_line()
p_lines
Run Code Online (Sandbox Code Playgroud)


Rom*_*rik 5

这应该让你开始.

my.cars <- data.frame(Toyota = runif(50), Mazda = runif(50), Renault = runif(50)) #make some fake data for this example
plot(x = 1:nrow(my.cars), y = my.cars$Toyota, type = "n") #make an empty plot
with(my.cars, lines(x = 1:nrow(my.cars), y = Toyota, col = "red")) #add lines for Toyota
with(my.cars, lines(x = 1:nrow(my.cars), y = Mazda, col = "red")) # add lines for Mazda
with(my.cars, lines(x = 1:nrow(my.cars), y = Renault, col = "navy blue")) # add lines for Renault
Run Code Online (Sandbox Code Playgroud)

我使用with()这样你不必输入my.cars$Toyota,my.cars$Mazda...每次你想要调用一列.探索?par可传递给的其他参数plot.有ggplot2解决方案的医生很快就会见到你.