首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整轴心位置ggplot2小面

调整轴心位置ggplot2小面
EN

Stack Overflow用户
提问于 2016-05-02 17:42:11
回答 3查看 1K关注 0票数 2

随着时间的推移,我正在策划一个展示迈阿密十大监狱预订的阴谋,让他们对图形库更加熟悉。我遇到了两个关键问题:

  1. 标题不以图形的视觉空间为中心。它也会落在图形上,而不是强制它的空间。
  2. 轴要么离图形太近(小的时候),要么如果我扩大绘图区域的大小,它们就会从末端掉下来。

所以我想问题是..。我如何得到我的轴线,以加强他们的空间,在其余的图形,我如何使我的标题中心。以下是目前为止的代码:

以下是一幅图片:

以下是代码:

代码语言:javascript
复制
p = d %>%
  ggplot(aes(x = factor(bookMonth), y = chargeObs, fill = factor(Charge1))) +
  geom_bar(position = "stack", stat = "identity") +
  facet_wrap(~ bookYear) +
  ggtitle("Top 10 Miami Jail Bookings") +
  labs(y="Bookings (thousands)", x="Date") +
  scale_fill_brewer(palette="Spectral", name = "Charge") +
  theme(plot.title = element_text(size = rel(2)),
        panel.background = element_rect(fill = "white"),
        panel.grid.major = element_line(colour = "#eaeded"),
        strip.background = element_rect(fill = "#eaeded", size = 1),
        axis.title.y = element_text(size = rel(1.25), angle = 90),
        axis.title.x = element_text(size = rel(1.25), angle = 0)
  )
ggplotly(p)

以下是操作代码:

代码语言:javascript
复制
library(plotly)
library(plyr)
library(dplyr)
library(rjson)
library(lubridate)

 #Read Data in.
correctionsInit = read.csv("C:\\data\\jailbookings.csv")
correctionsInit = correctionsInit %>% tbl_df()
corrections = correctionsInit

 #Number of Charges we want to display
#ie top 10.
numCharges = 10

#Questions 
corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
#
#Rework some of the labelling.
#
ChargeLUT = c("BENCH WARRANT" = "Misc. Warrants",
          "PROBATION WARRANT" = "Misc. Warrants",
          "OUT-OF-CNTY/WARRANT" = "Misc. Warrants",
          "ALIAS CAPIAS" = "Misc. Warrants",
          "ASSAULT/AGGRAVATED" = "Assault",
          "DOMESTIC VIOL WARRNT" = "Misc. Warrants",
          "GRAND THEFT/ARM/CONS" = "Grand Theft",
          "GRAND THEFT 2ND DEG" = "Grand Theft",
          "GRAND THEFT 3RD DEG" = "Grand Theft",
          "COKE/SELL/DEL/W/INT" = "Drug Traffic",
          "CONT SUB/SELL/DEL" = "Drug Traffic",
          "DWLS/HABITUAL" = "Drivers Lisence",
          "DWLS/KNOWINGLY" = "Drivers Lisence",
          "CANN/TRF/25-2000LBS" = "Drug Traffic",
          "CANN/POSN/-20/ATTEMP" = "Drug Possession",
          "DWLS/3RD & SUBS OFFN" = "Drivers Lisence",
          "NO VALID DRIVERS LIC" = "Drivers Lisence",
          "CANNABIS/POSN/0-20" = "Drug Possession",
          "COCAINE/POSSESSION" = "Drug Possession",
          "ALC BEV/DRK IN PUBLC" = "Disorderly in Public",
          "DISORDERLY CONDUCT" = "Disorderly in Public",
          "PETIT THEFT" = "Theft",
          "PETIT THEFT 1D" = "Theft",
          "ASSAULT/AGG/FIREARM" = "Armed Assault",
          "ASSAULT/AGG/DWEAP" = "Armed Assault",
          "NO VALID DRIVERS LIC" = "Drivers Lisence",
          "GRD THEFT/3D/VEHICLE" = "Grand Theft",
          "CONT SUBS/POSS" = "Drug Possession",
          "ALCOHOL/PUB/MIA BCH" = "Disorderly in Public",
          "DL/EXPIRED 6 MTHS+" = "Drivers Lisence",
          "ALC/OPN CNTR/POSN" = "Drug Possession",
          "INDECENT EXPOSURE" = "Disorderly in Public",
          "DISORDERLY INTOX" = "Disorderly in Public",
          "RESIST OFF W/O VIOL" = "Resist Officer",
          "BATTERY/AGGRAVATED" = "Battery",
          "LOITERING OR PROWL" = "Loitering",
          "ARREST WARRANT" = "Misc. Warrants",
          "ROBBERY/STRONGARM" = "Theft",
          "RETAIL THEFT/300>" = "Theft",
          "BATTERY" = "Battery",
          "BATT/DOM/STRANGLE" = "Battery",
          "DRUG PARAPHERNA/POSN" = "Drug Possession",
          "TRES PROP/AFTER WARN" = "Misdemeanor",
          "BURGLARY/UNOCC CONVY" = "Theft",
          "CANN/SELL/DEL/PSNW/I" = "Drug Traffic",
          "BATTERY/LEO/COR/FIRE" = "Battery",
          "FUG WARR/OUT O STATE" = "Misc. Warrants",
          "TRESPASS/STRUC/UNOCC" = "Misdemeanor",
          "DIS COND/ESTAB" = "Disorderly in Public",
          "RECKLESS DRIVING" = "Reckless Driving",
          "RBRY/ARM/FA/DW - PBL" = "Theft",
          "BURGLARY/OCC/DWELL" = "Theft",
          "BATTERY/AGG/DWEAP" = "Armed Assault",
          "DUI/DAM/PROP/PERSON" = "DUI",
          "ALCOHOL/CURB DRNKNG" = "Disorderly in Public",
          "DUI/BREATH LEVEL" = "DUI",
          "BATTERY/FELONY" = "Battery",
          "ASSAULT" = "Assault",
          "PROBATION VIOLATION" = "Probation",
          "CRIM MIS/1000+" = "Misdemeanor",
          "CRIM MIS/200-1000" = "Misdemeanor",
          "BURGLARY/UNOCC/DWELL" = "Theft",
          "WRIT/BODILY ATTACH" = "Misc. Warrants",
          "PANHANDLING/BEG/SOL" = "Misdemeanor",
          "CONCEALED F/A /CARRY" = "Weapons",
          "CANNABIS/POSN/20+" = "Drug Possession",
          "BURGLARY/UNOCC/PREJU" = "Theft",
          "PROST/COMMIT/ENGAGE" = "Prostitution",
          "HOLD FOR AGENCY" = "Misc. Warrants",
          "BATTERY/AGG/PREGNANT" = "Battery",
          "LSA/PROP DAMAGE" = "Reckless Driving",
          "PANHANDLE/AGGRESV" = "Misdemeanor",
          "ALCOHOL/CONSUM/STORE" = "Disorderly in Public",
          "CRIM MIS/0-200" = "Misdemeanor",
          "FA/WEAP/POSN/FEL/DEL" = "Weapons",
          "BURGLARY/UNOCC/STRUC" = "Theft",
          "UTTERING/CHECK" = "Forgery",
          "DOM VIOL/INJUNC VIOL" = "Assault",
          "GT 3RD/VEHICLE/CONS" = "Grand Theft",
          "FLEE/ELUDE PO" = "Fleeing",
          "BURG/ASLT/BATT - PBL" = "Theft",
          "BATTERY/ELDERLY" = "Battery",
          "PARK/ENT AFT HRS" = "Misdemeanor",
          "BATTERY/AGG/HRM/WEAP" = "Armed Assault",
          "STOLEN PROP/DEAL IN" = "Theft",
          "TRESP/STRUC/OCC/WARN" = "Misdemeanor",
          "HER/SELL/DEL W/INT" = "Drug Traffic",
          "BUSINESS W/O LIC" = "Bussiness Offense",
          "PETIT THEFT 2> CONV" = "Theft",
          "HOLD/CORRECTIONS" = "Misc. Warrants",
          "PANHANDLE/AGGR/OBSTR" = "Misdemeanor",
          "BATTERY/ATTEMPT" = "Assault",
          "ORGANIZED FRD/0-20K" = "Business Offense",
          "RESIST OFF W/VIOL" = "Resist Officer",
          "FLS NAME/ID/AFT ARRE" = "Other",
          "RETAIL THFT/PRI CON" = "Theft",
          "BOATING UNDER INFLU" = "DUI",
          "ATT FEL MUR/DLY WEA" = "Armed Assault"
) 
#Rename for real.
corrections$Charge1 = corrections$Charge1 %>%
  revalue(ChargeLUT)

#What are the top issues
#aside from warrants.
topCharges = corrections %>%
  filter(Charge1 != "") %>%
  filter(Charge1 != "Misc. Warrants") %>%
  group_by(Charge1) %>%
  summarise(
    totalCharge1 = n()
  ) %>%
  top_n(numCharges, totalCharge1) 

#Get data together and in good display format
d = corrections %>%
  mutate(
    bookYear = year(BookDate),
    bookMonth = ordered(months(BookDate, abbreviate = TRUE), month.abb)
  ) %>%
  filter(Charge1 != "") %>%
  filter(Charge1 != "Misc. Warrants") %>%
  group_by(bookYear, bookMonth, Charge1) %>%
  summarise(
    chargeObs = n() / 1000
  ) %>%
  mutate(
    total = sum(chargeObs)
  ) %>%
  filter(Charge1 %in% topCharges$Charge1)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-02 18:59:46

不一定是一个答案,但这个Github问题正在跟踪这个问题并寻求解决方案。不幸的是,目前还没有解决这个问题的办法。

票数 2
EN

Stack Overflow用户

发布于 2017-05-06 02:17:02

我遇到了类似的问题,手动调整了plot.ly图形对象的边距:

代码语言:javascript
复制
plotly_object$x$layout$margin$l <- plotly_object$x$layout$margin$l + 30
plotly_object$x$layout$margin$b <- plotly_object$x$layout$margin$b + 30
票数 2
EN

Stack Overflow用户

发布于 2022-07-03 08:58:13

这个问题可以由plot.margin in theme()解决,参见朱巴在这个职位中的答案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36988379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档