2015-10-23 4 views
1

Я пытаюсь построить объект Zoo в R. Мне удалось построить набор данных, как я хочу, но я могу выяснить, как изменить метки панели (направление, размер, порядок, и т.д.).Ярлыки панели R-диаграммы

Очень небольшое подмножество большого набора данных:

AvgRW.z <- structure(c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.933, 1.018, 
0.6415, 0.7495, 0.654166666666667, 0.635333333333333, 0.44875, 
0.615583333333333, 0.825857142857143, 0.7095, 1.1536875, 1.65311111111111, 
1.50425, 1.87955, 2.14577272727273, 1.61231818181818, 2.48027272727273, 
1.82383336363636, 1.373, 1.36390909090909, 1.38969441666667, 
1.39786108333333, 2.14262823076923, 2.37315478571429, 2.37939285714286, 
1.85764285714286, 1.98335714285714, 1.34670237857143, 0.710416664285714, 
0.657595235714286, 1.3541905, 1.81747621428571, 1.88546428571429, 
1.92221428571429, 2.10236907142857, 1.62090476428571, 1.61060714285714, 
2.03883335714286, 2.10155130769231, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, 0.999, 0.671, 0.638, 0.767, 0.839, 1.072, 
1.162, 0.7215, 0.416, 0.3265, 0.464, 1.492, 1.011, 1.0905, 1.0755, 
1.42183333333333, 1.17783333333333, 0.931166666666667, 1.761375, 
2.063875, 1.91758333333333, 0.945583333333333, 0.60775, 1.07725, 
1.85278571428571, 2.05792857142857, 2.6515, 2.25066666666667, 
2.19533333333333, 1.931, 2.31927777777778, 2.5933, 3.03875, 2.66533333333333, 
2.70753846153846, 2.53957692307692, 2.98446153846154, 3.24507692307692, 
3.23284615384615, 3.59303846153846, 4.03557692307692, 3.45111538461538, 
3.47661538461538, 2.96003846153846, 2.96257692307692, 2.65265384615385, 
2.53873076923077, 2.60619230769231, 2.26838461538462, 1.96623076923077, 
2.27869230769231, 2.00357692307692, 1.74626923076923, 2.61165384615385, 
1.081, 0.739, 0.635, 1.813, 1.349, 1.479, 0.964, 1.029, 0.792, 
0.474, 0.428, 0.284, 0.253, 0.257, 0.388, 0.357, 0.316, 0.305, 
0.33, 0.258, 0.263, 1.135, 1.232, 0.648, 1.325, 1.461, 1.414, 
1.054, 0.401, 0.35, 0.498, 0.702, 0.636, 0.327, 0.276, 0.266, 
0.318, 0.305, 0.312, 0.248, 0.265, 0.253, 0.242, 0.224, 0.233, 
0.225, 0.262, 0.228, 0.356, 0.454, 0.474, 0.474, 0.466, 0.443, 
0.56, 0.455, 1.427, 0.777, 0.804, 1.376, 0.812, 0.728, 0.494, 
0.49, 0.733, 0.541, 0.57, 0.738, 0.469, 0.351, 0.439, 0.493, 
0.392, 0.489, 0.372, 0.544, 0.424, 0.514, 0.652, 0.383, 0.902, 
1.351, 0.963, 0.724, 0.658, 0.396, 0.302, 0.302, 0.213, 0.231, 
0.269, 0.264, 0.252, 0.207, 0.188, 0.072, 0.141, 0.218, 0.223, 
0.216, 0.199, 0.195, 0.048, 0.17, 0.18, 0.244, 0.183, 0.213, 
0.215, 0.127, 0.184, 0.227, 0.167, 0.12, 0.181, 0.143, 0.17, 
0.136, 0.191, 0.108, 0.183, 0.218, 0.213, 0.283, 0.208, 0.162, 
0.109, 0.116, 0.09, 0.116, 0.13, 0.172, 0.241, 0.186, 0.263, 
0.162, 0.155, 0.18, 0.3515, 0.3585, 0.4555, 0.407, 0.806, 0.61475, 
0.78375, 0.571, 0.4595, 0.572, 0.6015, 0.5395, 0.57125, 0.58925, 
0.628, 0.5235, 0.47725, 0.539, 0.5475, 0.6615, 0.6915, 0.903, 
0.817, 1.3595, 1.08216666666667, 1.40833333333333, 1.5035, 1.851, 
1.17716666666667, 1.15783333333333, 0.969833333333333, 0.861, 
1.22116666666667, 1.36016666666667, 1.1545, 0.700166666666667, 
1.37333333333333, 0.947666666666667, 1.05466666666667, 1.27183333333333, 
1.73233333333333, 1.02633333333333, 1.141, 1.51533333333333, 
1.51983333333333, 1.5285, 1.33866666666667, 1.46666666666667, 
1.58666666666667, 1.79483333333333, 1.7285, 1.54966666666667, 
1.73166666666667, 1.64666666666667, 1.21983333333333, 1.18183333333333, 
1.18233333333333, 1.4265, 1.57733333333333, 1.58483333333333, 
1.2885, 1.32116666666667, 1.17866666666667, 1.34, 1.9625, 1.67416666666667, 
1.74066666666667, 1.264, 1.50083333333333, 1.305625, 2.11375, 
1.911625, 2.00275, 2.288125, 2.208125, 1.905125, 2.198375, 2.440375, 
2.25475, 2.4833, 2.0895, 1.82585714285714, 2.04985714285714, 
2.08471428571429, 2.06178571428571, 2.03742857142857, 2.175375, 
1.602, 1.693625, 1.4650625, 1.45575, 1.318125, 1.51175, 1.509875, 
1.33025, 1.403875, 1.7210625, 1.3410625, 1.549375, 1.73025, 1.419625, 
1.3186875, 1.0964375, 1.2894375, 1.2999375, 1.2965625, 1.4950625, 
1.6164375, 1.11575, 0.993, 0.950125, 0.86375, 0.909363636363636, 
1.16231818181818, 1.04127272727273, 1.26325, 1.076125, 1.65279166666667, 
1.33608333333333, 1.78991666666667, 1.368, 1.21133333333333, 
1.65404166666667, 1.135, 0.592375, 0.524791666666667, 0.639583333333333, 
0.844625, 0.796416666666667, 0.938666666666667, 1.14479166666667, 
1.223, 0.826875, 0.859333333333333, 1.13633333333333), .Dim = c(273L, 
3L), .Dimnames = list(NULL, c("BR8", "FA5", "FK2")), index = c("1739", 
"1740", "1741", "1742", "1743", "1744", "1745", "1746", "1747", 
"1748", "1749", "1750", "1751", "1752", "1753", "1754", "1755", 
"1756", "1757", "1758", "1759", "1760", "1761", "1762", "1763", 
"1764", "1765", "1766", "1767", "1768", "1769", "1770", "1771", 
"1772", "1773", "1774", "1775", "1776", "1777", "1778", "1779", 
"1780", "1781", "1782", "1783", "1784", "1785", "1786", "1787", 
"1788", "1789", "1790", "1791", "1792", "1793", "1794", "1795", 
"1796", "1797", "1798", "1799", "1800", "1801", "1802", "1803", 
"1804", "1805", "1806", "1807", "1808", "1809", "1810", "1811", 
"1812", "1813", "1814", "1815", "1816", "1817", "1818", "1819", 
"1820", "1821", "1822", "1823", "1824", "1825", "1826", "1827", 
"1828", "1829", "1830", "1831", "1832", "1833", "1834", "1835", 
"1836", "1837", "1838", "1839", "1840", "1841", "1842", "1843", 
"1844", "1845", "1846", "1847", "1848", "1849", "1850", "1851", 
"1852", "1853", "1854", "1855", "1856", "1857", "1858", "1859", 
"1860", "1861", "1862", "1863", "1864", "1865", "1866", "1867", 
"1868", "1869", "1870", "1871", "1872", "1873", "1874", "1875", 
"1876", "1877", "1878", "1879", "1880", "1881", "1882", "1883", 
"1884", "1885", "1886", "1887", "1888", "1889", "1890", "1891", 
"1892", "1893", "1894", "1895", "1896", "1897", "1898", "1899", 
"1900", "1901", "1902", "1903", "1904", "1905", "1906", "1907", 
"1908", "1909", "1910", "1911", "1912", "1913", "1914", "1915", 
"1916", "1917", "1918", "1919", "1920", "1921", "1922", "1923", 
"1924", "1925", "1926", "1927", "1928", "1929", "1930", "1931", 
"1932", "1933", "1934", "1935", "1936", "1937", "1938", "1939", 
"1940", "1941", "1942", "1943", "1944", "1945", "1946", "1947", 
"1948", "1949", "1950", "1951", "1952", "1953", "1954", "1955", 
"1956", "1957", "1958", "1959", "1960", "1961", "1962", "1963", 
"1964", "1965", "1966", "1967", "1968", "1969", "1970", "1971", 
"1972", "1973", "1974", "1975", "1976", "1977", "1978", "1979", 
"1980", "1981", "1982", "1983", "1984", "1985", "1986", "1987", 
"1988", "1989", "1990", "1991", "1992", "1993", "1994", "1995", 
"1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", 
"2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011" 
), class = "zoo") 

Текущий код:

my.panel <- function(x, ...) { 
    lines(x, ...) 
    panel.number <- parent.frame()$panel.number 
    abline(h=2.0, col = "black", lty = "dotted", lwd = 0.5) 
    abline(v=seq(1750,2010,50),col = "lightgray", lty = "dotted", lwd = par("lwd")) 
} 

plot.zoo(AvgRW.z, plot.type="multiple", yax.flip=TRUE, nc=1, 
     screens=c(3,1,6,11,7,21,24,12,8,9,2,22,14,19,13,17,20,4,15,5,16,23,10,18), 
     bty="o", main = "Title", type = "l", lwd = 1.5, col = "black", panel = my.panel, ylim=c(0,4.5), yaxt="n") 

Это выходной ток график (используя мой полный набор данных): Sample

В идеале , Я бы хотел повернуть метки панели, чтобы они были горизонтальными и намного меньшими. Я также пытаюсь получить порядок ярлыков в соответствии с порядком отображения экрана. Я также хотел бы иметь возможность настроить X-axis label «Index».

Я пробовал несколько вариантов, в том числе:

par.strip.text 

panel.text 

xy.labels 

sort(AvrRW.z) 

Либо я не добавлять код в нужное место, или я не использую это правильно, потому что ничего не работает, чтобы изменить мой этикетки или заказывать мои панели (решение для ручного экрана - это единственное, что работает, чтобы правильно заказать панели, а не этикетки).

Любые предложения были бы полезны!

+0

код размещен в SO должен быть воспроизводимым, который включает в себя показывает все входы и заявления библиотеки. См. Эти 3 ссылки: http://stackoverflow.com/help/mcve http://stackoverflow.com/help/how-to-ask http://stackoverflow.com/questions/5963269/how-to-make -a-great-r-воспроизводимый пример –

ответ

1

Данные, размещенные в этом вопросе использует символьные строки в качестве значения времени, так первое преобразование тех числовыми:

library(zoo) 
z <- AvgRW.z 
time(z) <- as.numeric(time(z)) 

1) Вы можете найти его проще использовать решетку или ggplot2, оба из которых поддерживаются зоопарком. Использование решетки это делает метки меньше и помещает их в верхней части каждой панели, так что нет необходимости поворачивать их:

library(lattice) 
xyplot(z, par.strip.text = list(cex = .5), 
    scales = list(y = list(relation = "same", alternating = TRUE))) 

отметить также, что количество панельных колонн может быть определено путем добавления layout = c(2, NA), который определяет две колонки.

screenshot

2) Другая возможность состоит в том, чтобы поместить панель ярлыков в левой верхней части самой площади участка, так что они не занимают дополнительное место. Это еще более компактно, чем предыдущее решение, поскольку оно использует только пространство, которое было бы пустым в любом случае, и не использует дополнительное пространство для любых меток.

library(grid) 
library(lattice) 

xyplot(z, strip = FALSE, panel = function(...) { 
    grid.text(names(z)[which.packet()], .05, .95, gp = gpar(cex = 0.5)) 
    panel.xyplot(...) 
}, scales = list(y = list(relation = "same", alternating = TRUE))) 

screenshot

+0

Это похоже на график, который у меня есть, но он не использует код, который я опубликовал в моем исходном вопросе. Как упоминалось в вопросе, у меня есть БОЛЬШОЙ набор данных, который создает 24 панели. Когда я запускаю код, метки панели на оси 2 и 4 слишком велики для чтения. Я пытался выяснить, как изменить размер этих ярлыков. – KKL234

+0

Я изменил ответ на использование 'xyplot.zoo', чтобы сделать метки меньше.Решетка по умолчанию помещает их поверх верхней панели, что делает их горизонтальными по умолчанию. В общем случае вопросы должны быть минимальными и не включать в себя кучу нерелевантных усложняющих аргументов, а скорее код должен быть сведен к тому, чтобы сосредоточиться на ядре вопроса. –

+0

Я ценю редактирование и объяснение. Я пытаюсь создать очень конкретный граф и хотел бы научиться эффективно управлять им. В моем исходном коде метки панели расположены слева и справа от каждой панели, чередующиеся стороны. Я хотел бы сохранить этот формат, если это возможно. Моя цель - выяснить, как я могу повернуть метки панели (горизонтально, а не вертикально, но все же на оси 2 и 4) и отрегулировать размер текста. – KKL234

Смежные вопросы