我是一個相對新手到R,我正在編寫代碼使用ggplot2從一些漂亮的基本數據創建圖表。我的繪圖代碼目前看起來是這樣的:在ggplot需要第二個傳說geom_hline的
chart1_data = read.csv(data_file, as.is=T)
chart1_means = read.csv(means_file, as.is=T)
p = ggplot(data=chart1_data, aes(x=entity, y=usage, fill=medicine)) +
geom_bar(stat="identity", position=position_dodge()) +
geom_hline(data=chart1_means, aes(yintercept=value), show.legend=FALSE)
這就使人們的跨越代表平均值條黑色水平線分組豎條圖表和具有顯示垂直條的顏色編碼的傳奇人物。
我想要做幾件事情:在顏色
顯示水平線(geom_hline)(默認集合,R具有的色彩,映射到不同數目的在chart1_means表的行)
顯示第二個圖例,顯示這些線條顏色和地圖到chart1_means文件中列1的值,這是文本標籤。
爲了清楚起見,chart1_means CSV文件看起來像這樣:
label,value
USA Codeine mean, 14.2
Canada Codeine mean, 12.7
etc.
而且chart1_data CSV文件看起來像這樣:
year,medicine,entity,usage,units
2006,Codeine,Mexico,0.8,mg/capita
2006,Codeine,Cuba,NA,mg/capita
etc.
我有這個失敗谷歌搜索。似乎有很多方法可以做類似的事情,但沒有我能找到的,這是非常適用的。
更新的版本?
我設計的東西是更接近正確的,但還是錯了bethanyP的建議。代碼目前看起來像這樣:
chart1_data = read.csv(data_file, as.is=T)
chart1_means = read.csv(means_file, as.is=T)
means_labels = chart1_means$label
colors = rainbow(length(means_labels))
p = ggplot(data=chart1_data, aes(x=entity, y=usage, fill=medicine)) +
geom_bar(stat="identity", position=position_dodge(), show.legend=TRUE) +
geom_hline(data=chart1_means, aes(yintercept=value), color=colors) +
scale_fill_manual("means", values=colors, guide=guide_legend(override.aes = list(colors)))
結果是覆蓋彩條(好)但仍然只有一個圖例的彩色線條。圖例的標題爲「手段」(面向行的數據),但顯示「藥品」(酒吧導向數據)的顏色和標籤。
我想我可能能夠做到這一點,而不是:
scale_fill_manual("means", values=colors, labels=means_labels)
但這填寫標題爲「手段」單一的傳說,這是一個子集與酒吧有關的顏色和標籤「 means_labels「(因爲條數線比條數線少)。
我幾乎陷入僵局。仍然需要來自兩個不同數據系列的兩個傳說。還有其他建議嗎?
我已經更新了我的代碼到它的當前窗體。 – Barry