неправильный порядок меток значений данных в диаграмме в R - PullRequest
3 голосов
/ 10 февраля 2012

Я пытаюсь добавить значения данных на столбцы моей диаграммы, созданной с использованием пакета решетки. Ниже приведен снимок моего кода.

К сожалению, значения в верхней части панели отображаются неверно. Например, в верхней части столбца со значением 3,02E-10 отображается значение 4,76E-10 и т. Д. Может ли кто-нибудь помочь мне решить эту проблему.

enter code here

p <- barchart (one_cir$Value~one_cir$bias, horiz=FALSE,xlim=select_bias, ylim=yrange, data=one_cir,
        groups=droplevels(one_cir$Model),
        xlab=list("RVBS (V)",cex=1.3 ),ylab=list("Delay (ps)",cex=1.3 ), 
        main="SVT Circuit Analysis: Delay vs RVBS",
        panel = function(x,y,...){
        panel.barchart(x,y,...)
        panel.grid(h=-1, v=0, col="gray")
        panel.text(x,y,label = one_cir$Value, pos=1,cex=1.2)
                },scales=list(cex=1.2),
        auto.key=list(x = .81, y = 1, corner = c(0, 0),half=FALSE,points = FALSE, cex=1.2, rectangles = TRUE)
                 )
        print(p)

Пример набора данных

bias Circuits Model Temp Corner Parameter    Value

0.0     NOR2   11C   25   3-TT delay_DDC 3.02e-10

0.3     NOR2   11C   25   3-TT delay_DDC 3.79e-10

0.6     NOR2   11C   25   3-TT delay_DDC 4.92e-10

0.0     NOR2   11B   25   3-TT delay_DDC 2.90e-10

0.3     NOR2   11B   25   3-TT delay_DDC 3.66e-10

0.6     NOR2   11B   25   3-TT delay_DDC 4.76e-10

1 Ответ

2 голосов
/ 11 февраля 2012

Я не специалист по решетке, но следующий твик к функции panel.text () упорядочил метки правильно и разместил метки над соответствующими полосами, а не перекрывал их:1003 * Вот вывод, который я получил:

lattice barchart with labels

Я не знаю, есть ли более гибкий способ получить тот же результат.Я также пропустил аргументы xlim и ylim, потому что у меня не было этих объектов.Вот полный код:

    one_cir <- data.frame(bias = c(0.0, 0.3, 0.6, 0.0, 0.3, 0.6), 
    Circuits = rep("NOR2", 6), 
    Model = rep(c("11C", "11B"), each = 3), 
    Temp = rep(25,6), 
    Corner = rep("3-TT", 6), 
    Parameter = rep("delay_DDC", 6), 
    Value = c(3.02e-10, 3.79e-10, 4.92e-10, 2.90e-10, 3.66e-10,4.76e-10)
    )

    library(lattice)
    p <- lattice:::barchart(Value~bias, horiz = FALSE, data = one_cir,
            groups = droplevels(Model),
            xlab = list("RVBS (V)", cex = 1.3 ), ylab = list("Delay (ps)",cex = 1.3 ), 
            main = "SVT Circuit Analysis: Delay vs RVBS",
            panel = function(x,y,...){
                panel.barchart(x, y, ...)
                panel.grid(h = -1, v = 0, col = "gray")
                panel.text(x + rep(c(.25, -.25), 3), y, label = one_cir$Value[order(one_cir$bias)], pos = 3,cex = 1.2)
            },
            scales = list(cex = 1.2),
            auto.key = list(x = .81, y = 1, corner = c(0, 0), half = FALSE, points = FALSE, cex = 1.2, rectangles = TRUE)
    )
    print(p)
...