나는 ggplot2를 사용하여 pointrange() 플롯을 플롯하고 x 및 y 레이블은 모두 각각의 틱의 끝에서 홀수로 떨어져 있습니다. 이것은이 특정 스크립트에서 플롯의 모두와 함께 발생하지 않습니다, 단지 몇이 하나 포함 (사용 가능한 데이터의 하위 집합을 기반으로하지만,하면 문제를 보여줍니다) :축 텍스트의 기수 정렬
로 y 축 레이블이 실질적으로 왼쪽으로 옵셋되고 x 축 레이블이 축 레이블보다 위에 overplot 된 정도까지 틱보다 실질적으로 상쇄되는 것을 볼 수 있습니다.
이 플롯을 만들기 전에 theme_bw()에 대한 유일한 수정은 theme_set (theme_bw (base_size = 8))을 설정하는 것입니다. 플롯 코드 이전에 의도적으로 텍스트 정렬을 변경하지 않았습니다. 당신이 제공 할 수있는 모든 도움에 미리
TestData$StateN <- paste(TestData$State, " (", TestData$N, ")", sep = "")
TestData$StateN <- factor(TestData$StateN, levels = TestData$StateN[order(TestData$Polarization)])
ZP17Test <- ggplot(TestData,
aes(x = StateN, y = Polarization,
ymin = Polarization - 1.96 * PolarizationSE, ymax = Polarization + 1.96 * PolarizationSE))
ZP17Test <- ZP17Test + geom_hline(yintercept = 0, colour = I(MyPalette(5)[3]), alpha = I(7/12), size = I(1/3))
ZP17Test <- ZP17Test + geom_pointrange(size = I(1/3))
ZP17Test <- ZP17Test + scale_x_discrete("State (Number of Respondents)")
ZP17Test <- ZP17Test + opts(title = "State Polarization Levels in 2008",
axis.text.x = theme_text(angle=45, hjust=1, size = 7))
print(ZP17Test)
ggsave(plot = ZP17Test, "Analysis/Stack_Overflow.png", h = 4, w = 6)
감사합니다 : 플롯을 생산하는 데 사용되는 코드 여기
TestData:
structure(list(State = c("AL", "AZ", "CA", "CO", "CT", "DC",
"DE", "FL", "GA", "IL"), Year = c(2008L, 2008L, 2008L, 2008L,
2008L, 2008L, 2008L, 2008L, 2008L, 2008L), N = c(22L, 42L, 286L,
99L, 30L, 14L, 20L, 173L, 78L, 29L), Polarization = c(0.352923743188869,
0.505918664112271, 0.445768659699068, 0.555930347461176, -0.0133878043740006,
-0.380342319255035, -0.450998867087007, 0.385507917713463, 0.368070478718073,
0.23368733390603), PolarizationSE = c(0.16021790292877, 0.0650610761652209,
0.0100695976668952, 0.0270310803233059, 0.127526745827604, 0.296328985544823,
0.179653490097689, 0.0180113004747975, 0.0372516250664796, 0.112905812606479
), IDPol = c(0.198743353462518, 0.0416441096132583, 0.0551808637190376,
0.110549247724351, 0.302497569072991, -0.0343523165297017, -0.00367975496702999,
0.0520660142625065, 0.0762126127715774, 0.0936515057040723),
IDPolSE = c(0.102763798140243, 0.0523842634480865, 0.00789292373693809,
0.023425554880421, 0.0918856966184178, 0.184867986813743,
0.122339223641891, 0.0137386656250425, 0.0285951418531372,
0.0896433805255375), Estimate = c(0.00932965761458826, -0.000412018017715892,
0.00315002626133457, 0.00823125148777124, 0.000741919819714724,
-0.0211994171332907, -0.0218353390160545, 0.00290805283382581,
0.00406489584624635, 0.00604261698709428), Std..Error = c(0.00398420082222495,
0.00483343236746232, 0.00186579338568264, 0.0032167092866312,
0.00379995092553099, 0.0128981988697743, 0.0122846784163747,
0.00220581166165486, 0.00335683359383524, 0.00240425995025825
), StateN = structure(c(13L, 25L, 18L, 27L, 4L, 2L, 1L, 15L,
14L, 7L), .Label = c("DE (20)", "DC (14)", "WA (23)", "CT (30)",
"TX (365)", "NY (123)", "IL (29)", "PA (36)", "MI (114)",
"KS (28)", "OK (36)", "NJ (23)", "AL (22)", "GA (78)", "FL (173)",
"SC (69)", "MN (25)", "CA (286)", "OH (85)", "VA (34)", "IN (55)",
"OR (27)", "WI (22)", "NM (64)", "AZ (42)", "TN (77)", "CO (99)",
"LA (83)", "MA (22)", "NC (65)", "MS (63)"), class = "factor")), .Names = c("State",
"Year", "N", "Polarization", "PolarizationSE", "IDPol", "IDPolSE",
"Estimate", "Std..Error", "StateN"), row.names = c(1401L, 1403L,
1404L, 1405L, 1406L, 1407L, 1408L, 1409L, 1410L, 1414L), class = "data.frame")
된다 : 여기
은() 부분 집합의 아래에 그려 dput입니다 .
'axis.text.x' 호출에서'hjust = 0.5'를 변경하여 x 축 레이블을 더 가깝게 만듭니다. – Ramnath