目前,我有一个模拟数据集,描述了10种不同剂量的药物浓度 - 时间曲线,每个给药组有5次重复(“受试者”)。我试图用每个剂量的图形创建一个文件,中间浓度绘制为虚线,以及我希望用polygon()
实现的阴影置信区间。
# vector with the simulated doses
dvec <- c(0.1, 0.3, 1, 3, 10, 30, 100, 300, 500, 1000)
win.metafile("indv_plot.wmf", width = 25, height = 20)
par(mfrow = c(2, 5))
for (bb in c(1:10)) {
## sumdat is a data file which has summary statistics and CI
dose_d <- sumdat[sumdat$DOSE == dvec[bb], ]
plot(dose_d$TIME, dose_d$OBS_MED,
type = "n", lty = 2, col = "black",
xlab = "Time (hr)", ylab = "Plasma Concentration",
main = paste("DOSE=", dvec[bb]))
polygon(c(dose_d$TIME, rev(dose_d$TIME)), c(dose_d$LPL_MED, rev(dose_d$UPL_MED)),
col = "salmon", border = "red")
}
运行此代码时遇到两个问题:
polygon()
似乎成功生成了我想要的阴影区域,但我的虚线在图表上无处可见。我如何恰当地叠加这个以便可以看到两者?.wmf
文件中,y轴极具误导性(缩放以使10个图形中的每一个看起来几乎相同!)并切断部分阴影区域,这样您就再也看不到曲线的峰值。如何修复此缩放?请注意,剂量范围为10k倍。
编辑:以下是我正在使用的电子表格示例,其数字与我正在使用的数字略有不同。
DOSE TIME OBS_MED LPL_MED UPL_MED
0.1 0.25 0.00133825 0.001223836 0.002291141
0.1 0.5 0.001747625 0.002151059 0.003686252
0.1 1 0.00308325 0.003017057 0.005157501
0.1 2 0.003539375 0.003388839 0.005425594
0.1 3 0.002771875 0.003205603 0.004896142
0.1 5 0.002286875 0.002368057 0.003719701
0.1 7 0.0020495 0.00164708 0.002937914
0.1 12 0.001414625 0.000644596 0.001710477
30 0.25 0.760858151 0.275588118 0.470376128
30 0.5 0.749280163 0.468870272 0.774292746
30 1 1.264732715 0.677246853 1.069407039
30 2 1.219044091 0.769589233 1.148778861
30 3 1.084113451 0.70481485 1.06030292
30 5 1.014486376 0.527557896 0.791142911
30 7 0.600676092 0.368193808 0.610086631
30 12 0.287301205 0.138354359 0.371749849
答案 0 :(得分:1)
在绘制线条后调用多边形进行绘制。如果没有多边形填充的透明度,您将无法看到该线条。首先绘制多边形。
您依赖于绘图功能所做的自动轴选择,这些选择基于线的限制而不是多边形。您可以根据需要指定自己的限制,如手册页中所述。