ฉันจะเปลี่ยนชื่อของตำนานใน ggplot2 ได้อย่างไร [ปิด]


58

ฉันมีพล็อตที่ฉันทำใน ggplot2 เพื่อสรุปข้อมูลที่มาจากชุดข้อมูล celled 2 x 4 x 3 ฉันได้รับสามารถที่จะทำให้การติดตั้งสำหรับตัวแปร 2 ระดับการใช้facet_grid(. ~ Age)และการตั้งค่า x และแกน y aes(x=4leveledVariable, y=DV)ที่ใช้ ฉันเคยaes(group=3leveledvariable, lty=3leveledvariable)ผลิตเนื้อเรื่องจนถึงตอนนี้ สิ่งนี้ทำให้ฉันเห็นภาพที่เป็นแบบพาเนลโดยตัวแปร 2 ระดับโดยที่แกน X เป็นตัวแทนของตัวแปร 4 ระดับและเส้นที่แตกต่างกันที่พล็อตภายในพาเนลสำหรับตัวแปร 3 ระดับ แต่ที่สำคัญสำหรับตัวแปร 3 ระดับนั้นมีชื่อว่าด้วยชื่อของตัวแปร 3 ระดับและฉันต้องการให้มันเป็นชื่อที่มีช่องว่างของอักขระ ฉันจะเปลี่ยนชื่อตำนานได้อย่างไร?

สิ่งที่ฉันพยายามที่ดูเหมือนจะไม่ทำงาน (ที่abpเป็นวัตถุ ggplot2 ของฉัน):

 abp <- abp + opts(legend.title="Town Name")
 abp <- abp + scale_fill_continuous("Town Name")
 abp <- abp + opts(group="Town Name")
 abp <- abp + opts(legend.title="Town Name")

ข้อมูลตัวอย่าง:

ex.data <- data.frame(DV=rnorm(2*4*3), V2=rep(1:2,each=4*3), V4=rep(1:4,each=3), V3=1:3)

2
@drknexus - หากคุณสามารถแบ่งปันข้อมูลของคุณนั่นจะเป็นประโยชน์หรือชี้ไปที่ชุดข้อมูลที่คล้ายกันภายใน R ที่มีรูปร่างเหมือนกับข้อมูลของคุณ
Chase

1
ทุกคนที่นี่ดูเหมือนจะมีความรู้มาก แต่ฉันรู้ว่าสำหรับคำถามที่เกี่ยวข้องกับ ggplot ฉันพบว่ากลุ่ม google ของพวกเขามีประโยชน์อย่างไม่น่าเชื่อ groups.google.com/group/ggplot2
Dason

นอกเหนือจากเอกสารที่เป็นที่รู้จักและดีเยี่ยมในหน้าของ Hadley แล้วการอ้างอิงที่ไม่เป็นที่รู้จักใน Git Hubช่วยได้จริงๆกับปัญหาประเภทนี้
hans0l0

อีกวิธีหนึ่งคือtheme_get()ให้การอ้างอิงเดียวกันในคอนโซล
Brandon Bertelsen

1
ในการตอบสนองต่อการตั้งค่าสถานะหลายรายการเพื่อขอการโยกย้าย SO มันเป็นไปไม่ได้จริง ๆ ; ดูว่าทำไมใน SO.meta: meta.stackexchange.com/q/8004/150510 , meta.stackexchange.com/q/151890/150510
chl

คำตอบ:


25

ตัวเลือกอื่นคือการใช้

p + labs(aesthetic='custom text')     

ตัวอย่างเช่นตัวอย่างของเชสจะมีลักษณะดังนี้:

library(ggplot2)

ex.data <- data.frame(DV=rnorm(2*4*3),V2=rep(1:2,each=4*3),V4=rep(1:4,each=3),V3=1:3)
p <- qplot(V4, DV, data=ex.data, geom="line", group=V3, linetype=factor(V3)) + facet_grid(. ~ V2)
p + labs(linetype='custom title')

และให้ตัวเลข: ป้อนคำอธิบายรูปภาพที่นี่


วันนี้ฉันมีแนวโน้มที่จะชอบการใช้ห้องปฏิบัติการ () เพื่อปรับเปลี่ยนฉลากมากกว่าการระบุในระดับ / แกนตามขนาด / แกน
russellpierce

38

คุณสามารถเปลี่ยนชื่อของตำนานโดยการปรับขนาดสำหรับตำนานนั้น นี่คือตัวอย่างการใช้ชุดข้อมูล CO2

library(ggplot2)

p <- qplot(conc, uptake, data = CO2, colour = Type) + scale_colour_discrete(name = "Fancy Title")
p <- p + facet_grid(. ~ Treatment)
p 

แก้ไข:

ใช้ข้อมูลตัวอย่างจากด้านบนนี่คือวิธีการทำงาน ฉันคิดว่านี่เป็นการเลียนแบบพล็อตที่ @drknexus กำลังพยายามสร้าง ในฐานะที่เป็นหมายเหตุด้านข้างถ้าใครสามารถอธิบายได้ว่าทำไมเราต้องปฏิบัติต่อ V3 เพื่อเป็นปัจจัยให้แมปเข้ากับตำนานฉันจะขอบคุณมัน

p <- qplot(V4, DV, data = ex.data, geom = "line", group = V3, lty = factor(V3)) 
p <- p + scale_linetype_discrete(name = "Fancy Title") + facet_grid(. ~ V2)
p 

ข้อความแสดงแทน


ฉันคิดว่าสิ่งที่ฉันขาดหายไปคือฟังก์ชั่นเช่น scale_color_discrete ที่เชื่อมโยงกับข้อกำหนด "กลุ่ม" หรือ "lty" ใน ggplot (data = ex.daata, aes (x = V4, y = DV, กลุ่ม = V3, lty = V3 ))
russellpierce

1
ฉันพบแล้ว: scale_linetype_discrete (name = "bob")
russellpierce

@Chase: แก้ไขด้วยบิต scale_linetype_discrete และฉันจะยอมรับคำตอบของคุณ
russellpierce

1
@drknexus - ปัญหาที่มีอยู่ในตัวอย่างการทำงานของฉันคำสั่งที่เหมาะสมคือscale_colour_discrete()และรหัสที่คุณทำงานด้วยเห็นได้ชัดว่าแตกต่างกันเล็กน้อย ผมไม่ทราบว่ารหัสที่เป็น ...
เชส

3
@Chase Re: "ทำไมเราต้องรักษา V3 เป็นปัจจัย" scale_linetype_discreteคาดว่าจะมีตัวแปรที่มีค่าต่อเนื่อง (ปัจจัยหรือตัวอักษรจากplyr::is.discrete), ตรวจสอบรหัส src บน Github, j.mp/ejaRRT การตอบสนองที่ดี (+1)
chl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.