如何扩展x轴和y轴并缩小ggthemes :: theme_tufte()中的差距

时间:2017-06-23 08:13:50

标签: r ggplot2

我有以下蚕食:


type
  TRowCol = record
    Row,
    Col : Integer;
  end;

function GetRowCol(Grid : TDBGrid) : TRowCol;
var
  Pt : TPoint;
begin
  { pick up the mouse cursor pos and convert to DBGrid's internal  coordinates }
  Pt.X := Mouse.CursorPos.X;
  Pt.Y := Mouse.CursorPos.Y;
  Pt := Grid.ScreenToClient(Pt);

  Result.Row := Grid.MouseCoord(Pt.X, Pt.Y).Y;
  Result.Col := Grid.MouseCoord(Pt.X, Pt.Y).X;

  { adjust Col value to account for whether the grid has a row indicator }
  if dgIndicator in Grid.Options then
    Dec(Result.Col);

end;

使用以下代码:

library(tidyverse)
#> + ggplot2 2.2.1.9000        Date: 2017-06-23
#> + tibble  1.3.3                R: 3.3.2
#> + tidyr   0.6.3              GUI: X11
#> + readr   1.1.1           Locale: en_US.UTF-8
#> + purrr   0.2.2.2             TZ: Asia/Tokyo
#> + dplyr   0.7.0           
#> + stringr 1.2.0
#> Conflicts -----------------------------------------------------------------
#> * filter(),  from dplyr, masks stats::filter()
#> * lag(),     from dplyr, masks stats::lag()
tbl <- structure(list(sample = c("Fx", "Vx"), nof_degs = c(6038L, 
3606L)), .Names = c("sample", "nof_degs"), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -2L))

tbl
#> # A tibble: 2 x 2
#>   sample nof_degs
#>    <chr>    <int>
#> 1     Fx     6038
#> 2     Vx     3606

如下图所示:

enter image description here

1 个答案:

答案 0 :(得分:9)

请告诉我这是否足够接近:

ggplot(df, aes(x=sample,y=nof_degs)) +
  geom_histogram(position=position_dodge(0.01), colour="black",
                 stat="identity", width=0.8) +
  geom_rangeframe(y=c(0, max(df$nof_degs))) + 
  theme_tufte() +
  theme(axis.ticks.length = unit(5, "pt"))

enter image description here

另一个选项是aspect.ratio

ggplot(df, aes(x=sample,y=nof_degs)) +
  geom_histogram(position=position_dodge(2), colour="black",
                 stat="identity", width = 0.6) +
  geom_rangeframe(y=c(0, max(df$nof_degs))) + 
  theme_tufte() +
  theme(aspect.ratio = 2) +
  theme(axis.ticks.length = unit(5, "pt"))

enter image description here

您可以使用widthaspect.ratio参数来获得所需的情节。例如width = 0.8aspect.ratio = 1.5

enter image description here