- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:当 x Axis 基于连续 +200 周时,如何使它更具可读性?我计划将 x Axis 分成几个月。问题是一周的第一天不一定与一个月的第一天匹配。因此,我不知道如何处理重叠(连续两个月放在同一周)。
我正在可视化 Covid-19 前后的外科手术。
x Axis 对应自周一 2017-01-02
(yyyy-mm-dd
)以来的连续几周,范围为 1 - 209
。每个geom_point()
对应每周手术次数。
通常,我会简单地将 x Axis 分成更小的范围,例如x Axis 对应于 3 个月。不幸的是,由于 b$cons_week
计算自 2017-01-02
以来连续过去的每个星期一,它不一定对应于“月份休息”(作为一个月的第一天不一定与一周的第一天重合)。因此,我不知道如何打破 x Axis 。
我的数据是这样的
> head(b)
# A tibble: 6 x 3
diagnosis cons_week corona
<chr> <dbl> <fct>
1 2017-10-19 42 Normal
2 2017-07-11 28 Normal
3 2020-06-30 183 C19
4 2020-06-27 182 C19
5 2017-01-04 1 Normal
6 2017-12-07 49 Normal
首先,我计算每周的手术次数:
lin.model <- b %>%
group_by(corona, cons_week) %>%
summarise(n = n())
这样
# A tibble: 80 x 3
# Groups: corona [2]
corona cons_week n
<fct> <dbl> <int>
1 C19 173 1
2 C19 175 1
3 C19 181 1
4 C19 182 2
然后
ggplot(lin.model,
aes(x = cons_week, y = n, color = corona, fill = corona)) +
geom_point(size = 5, shape = 21) +
geom_smooth(se = F, method = lm, color = "black", show.legend = F) +
geom_smooth(lty = 2, show.legend = F) +
scale_color_manual(name = "",
values = c("#8B3A62", "#6DBCC3"),
labels = c("COVID-19", "Normal"),
guide = guide_legend(reverse=TRUE)) +
scale_fill_manual(name = "",
values = alpha(c("#8B3A62", "#6DBCC3"), .25),
labels = c("COVID-19", "Normal"),
guide = guide_legend(reverse=TRUE)) +
scale_x_continuous(name = "",
breaks = seq(0, 210, 12)) +
scale_y_continuous(name = "",
breaks = seq(0, 30, 5), limits = c(0, 30)) +
theme(axis.title.y = element_text(color = "grey20",
size = 17,
face="bold",
margin=ggplot2::margin(r=10)),
axis.line = element_line(colour = "black"),
axis.text.x = element_text(size = 15),
axis.text.y = element_text(size = 15),
panel.grid.major = element_line(colour = "grey90"),
panel.grid.minor = element_line(colour = "grey90"),
panel.border = element_blank(),
panel.background = element_blank(),
legend.position = "top",
legend.key = element_rect(fill = "white"),
legend.text=element_text(size=15))
我在想,b$diagnosis
能否以某种方式用于打破 x Axis ? b$diagnosis
对应具体的手术日期。
预期输出
数据
b <- structure(list(diagnosis = c("2017-10-19", "2017-07-11", "2020-06-30",
"2020-06-27", "2017-01-04", "2017-12-07", "2017-09-18", "2020-07-27",
"2020-08-28", "2020-12-29", "2018-04-12", "2020-06-20", "2020-08-29",
"2018-02-05", "2018-01-12", "2017-07-15", "2018-03-07", "2020-02-29",
"2019-08-24", "2017-08-08", "2018-11-27", "2017-03-15", "2017-05-12",
"2020-10-22", "2019-08-31", "2017-11-17", "2019-04-17", "2018-11-15",
"2018-02-08", "2019-08-09", "2019-10-06", "2017-08-30", "2019-05-09",
"2017-06-05", "2017-10-04", "2018-01-27", "2017-06-16", "2019-03-29",
"2017-06-16", "2018-07-19", "2020-04-23", "2020-01-31", "2020-06-27",
"2019-12-11", "2019-08-13", "2017-05-07", "2020-05-08", "2020-09-05",
"2019-12-18", "2018-07-24", "2017-07-31", "2017-01-23", "2018-09-08",
"2018-12-18", "2017-08-01", "2019-04-11", "2017-05-12", "2019-03-15",
"2019-06-12", "2017-05-10", "2020-10-27", "2018-08-26", "2019-06-03",
"2020-07-31", "2017-12-02", "2018-11-07", "2018-03-23", "2019-08-18",
"2019-08-30", "2018-07-23", "2018-08-08", "2018-10-10", "2019-05-26",
"2017-11-18", "2020-07-19", "2017-02-07", "2017-08-15", "2020-01-05",
"2019-07-28", "2017-05-28", "2017-01-02", "2018-09-25", "2017-03-26",
"2017-04-24", "2018-03-26", "2020-12-01", "2018-09-27", "2019-09-26",
"2017-10-06", "2019-01-11", "2020-08-15", "2017-02-06", "2018-06-07",
"2018-03-15", "2017-12-17", "2017-02-08", "2019-11-02", "2020-12-05",
"2017-09-16", "2017-06-18"), cons_week = c(42, 28, 183, 182,
1, 49, 38, 187, 191, 209, 67, 181, 191, 58, 54, 28, 62, 165,
138, 32, 100, 11, 19, 199, 139, 46, 120, 98, 58, 136, 144, 35,
123, 23, 40, 56, 24, 117, 24, 81, 173, 161, 182, 154, 137, 18,
175, 192, 155, 82, 31, 4, 88, 103, 31, 119, 19, 115, 128, 19,
200, 86, 127, 187, 48, 97, 64, 137, 139, 82, 84, 93, 125, 46,
185, 6, 33, 157, 134, 21, 1, 91, 12, 17, 65, 205, 91, 143, 40,
106, 189, 6, 75, 63, 50, 6, 148, 205, 37, 24), corona = structure(c(2L,
2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 2L, 2L), .Label = c("C19", "Normal"), class = "factor")), row.names = c(NA,
-100L), class = c("tbl_df", "tbl", "data.frame"))
最佳答案
我建议将您的 cons_week
转换为日期,例如:
lin.model <- b %>%
group_by(corona, cons_week) %>%
summarise(n = n()) %>%
mutate(cons_week_dt = as.Date("2017-01-02") + cons_week*7)
然后:
ggplot(lin.model,
aes(x = cons_week_dt, y = n, color = corona, fill = corona)) +
...
scale_x_date(date_breaks = "6 months", date_labels = "%b%Y", expand = c(0.07, 0)) +
...
关于r - ggplot : how to break the x-axis into months when data points are per week?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66679393/
我正在使用 HighCharts 线图,其中我的 x Axis 数据分布不均匀: [4, 10, 40, 100, 400, 1000, etc.] 目前,x 值均匀放置。我希望 x[5] 和 x[4
这是我使用的程序: library(plotly) mydata = read.csv("data_to_plot.txt") df = as.data.frame(mydata) p % gro
我一直在试图找到2之间的差异,但是要减去这个就没有运气了 The primary diff erence between the two representations is that a quate
给定一个没有 Axis 的图,我想使用 axis 添加一个水平 Axis 。在左侧,您会看到给定的“基线”图,在右侧,您会看到所需的结果: 基线图是使用简单生成的 plot(1, axes = FAL
我正在创建 XYPlot,并且需要反转 y Axis 上的顺序(也就是说,我需要较低的数字来使 Axis 上的数字较高)。如果有任何关于如何做到这一点的提示,我将不胜感激。 最佳答案 我也遇到了和你一
我有一个包含两个系列的图表,每个系列都有自己的yAxis。我需要自动将第二个轴最大值设置为第一个轴最大值的 13.5%。例如,如果第一个轴从 0 到 100,那么我希望第二个轴从 0 到 13.5(无
在 google 图表数据表对象中,我可以使用 datatable.getValue(...) 获取当前选择点值(V 轴/Y 轴)。但是,如果我想从 X 轴获取时间/日期/年份(请参见屏幕截图)。我没
我想知道是否有可能(我知道是)将绘图的 Axis 标签保留在绘图的一侧,将绘图的 Axis 标题保留在另一侧,特别是在离散的 geom_tile() 绘图中,如下所示: 最佳答案 您可以在 scale
我正在尝试制作带有自定义 Axis 标签的箱线图,但我似乎无法向图中添加 x Axis 。 例如: test <- data.frame(year=as.integer(rep(1963:2014,
我正在使用 LightningChartJS 创建图表。单击图例框中的系列描述后,系列消失,但 Axis 保留。是否可以将 Axis 与系列一起隐藏? 我的 Axis 和系列如下:- const ax
我有一个关于如何获取另一个 Axis 服务中已部署的 Axis 服务列表的问题。这是场景。我使用 Tomcat 7.0.14 和 Axis 2-1.5.5 作为部署环境。假设目前 Tomcat 上部署
我目前正在尝试使用包含两个 y Axis (一个在左边,一个在右边)的 AChartEngine 创建一个图表。然而,我似乎无法弄清楚如何才能真正添加第二个 y Axis 。一个 XYMultip
我正在使用 Core Plot 库在 iOS 上绘制图形。我想在 yAxis 的网格线之间添加颜色。我已经设法通过设置轴的 alternatingBandFills 属性来做到这一点。但是,我也必须在
我想知道是否有办法改变 x 轴刻度和 y 轴刻度背景的背景颜色以及字体颜色。 例如在 example in this link ,您可以看到代码的 x 轴(0,2,4,5..)和 y 轴(12,10,
我部署在 Weblogic 集群上的 Java 应用程序调用了如下两个 Web 服务。 • 它通过 HTTPS 向互联网上的外部应用程序发送 SOAP 客户端请求。(通过 Axis 1.4 创建的 J
我正在尝试为 x 和 y 设置 Axis ,但每次尝试时,热图都会缩小到绘图的一角。我试试 plt.xlim(0, 60) plt.ylim(0, 30) 我也试过: ax.set_ylim(0, 3
使用 DC js,尝试将 rowChart 设置为固定 X Axis 为 0-100。但是将其绘制为一条线? 我设置了 .elasticX(false) 并且看起来像上面那样。设置为 true 看起来
我有一些法语等级的学生成绩数据(双值,范围从 0 到 20)。 目前,在允许将日期作为 X 轴的散点图(用线连接点)上,我的 Y 轴上的成绩是双倍的,而 X 轴上是一系列学期结束日期。 使用以下间隔映
我正在尝试制作一个极坐标“sypder”图,但我在 Axis 标签方面遇到了一些问题。 xaxis 刻度标签似乎总是在 y Axis 网格下方的层上结束(字母被网格线覆盖,如下图所示),我希望它们在顶
我正在尝试使用ggplot2包绘制以下图形,但是以某种方式不会显示轴。刻度线在那里,而不仅仅是轴线。我使用了theme(axis.line=element_line())函数,但无法正常工作。 这是我
我是一名优秀的程序员,十分优秀!