【问题标题】:How to make contour plot in R with a ribbon overlay to show the seafloor如何在 R 中使用带状覆盖制作等高线图以显示海底
【发布时间】:2020-09-11 05:05:29
【问题描述】:

我有一系列采样站(因子)在不同海深的温度数据。

<table><tbody><tr><th>Station_No</th><th>Temperature</th><th>Depth_Sample</th><th>Max_Depth</th></tr><tr><td>BN030</td><td>14.22</td><td>1</td><td>2.8</td></tr><tr><td>BN030</td><td>14.24</td><td>2.8</td><td>2.8</td></tr><tr><td>BN030</td><td>14.22</td><td>0.4</td><td>2.8</td></tr><tr><td>BN030</td><td>14.23</td><td>1.9</td><td>2.8</td></tr><tr><td>BN040</td><td>14.28</td><td>0.9</td><td>1.5</td></tr><tr><td>BN040</td><td>14.29</td><td>1.5</td><td>1.5</td></tr><tr><td>BN040</td><td>14.29</td><td>0.3</td><td>1.5</td></tr><tr><td>BN050</td><td>14.8</td><td>0.9</td><td>3.1</td></tr><tr><td>BN050</td><td>15.02</td><td>1.2</td><td>3.1</td></tr><tr><td>BN050</td><td>15.04</td><td>1.1</td><td>3.1</td></tr><tr><td>BN050</td><td>14.92</td><td>2</td><td>3.1</td></tr><tr><td>BN050</td><td>14.9</td><td>3.1</td><td>3.1</td></tr><tr><td>BN050</td><td>15.55</td><td>0.2</td><td>3.1</td></tr><tr><td>BN050</td><td>14.79</td><td>0.3</td><td>3.1</td></tr><tr><td>BN050</td><td>14.9</td><td>1.5</td><td>3.1</td></tr><tr><td>BN060</td><td>15.1</td><td>0.5</td><td>1.9</td></tr><tr><td>BN060</td><td>14.96</td><td>1.1</td><td>1.9</td></tr><tr><td>BN060</td><td>14.94</td><td>1.9</td><td>1.9</td></tr><tr><td>BN070</td><td>14.85</td><td>1</td><td>6.5</td></tr><tr><td>BN070</td><td>15.13</td><td>0.3</td><td>6.5</td></tr><tr><td>BN070</td><td>14.89</td><td>2.2</td><td>6.5</td></tr><tr><td>BN070</td><td>13.96</td><td>5.3</td><td>6.5</td></tr><tr><td>BN070</td><td>14.3</td><td>4.1</td><td>6.5</td></tr><tr><td>BN070</td><td>14.79</td><td>3</td><td>6.5</td></tr><tr><td>BN070</td><td>13.59</td><td>6.5</td><td>6.5</td></tr><tr><td>BN070</td><td>13.78</td><td>2.8</td><td>6.5</td></tr><tr><td>BN070</td><td>13.96</td><td>5.4</td><td>6.5</td></tr><tr><td>BN070</td><td>13.59</td><td>6.4</td><td>6.5</td></tr><tr><td>BN070</td><td>15.23</td><td>0.4</td><td>6.5</td></tr><tr><td>BN070</td><td>13.68</td><td>4</td><td>6.5</td></tr><tr><td>BN070</td><td>14.11</td><td>1.8</td><td>6.5</td></tr><tr><td>BN070</td><td>14.12</td><td>1.9</td><td>6.5</td></tr><tr><td>BN070</td><td>13.64</td><td>5.2</td><td>6.5</td></tr><tr><td>BN080</td><td>15.15</td><td>0.3</td><td>4.4</td></tr><tr><td>BN080</td><td>14.31</td><td>3.3</td><td>4.4</td></tr><tr><td>BN080</td><td>14.21</td><td>4.4</td><td>4.4</td></tr><tr><td>BN080</td><td>14.38</td><td>2.1</td><td>4.4</td></tr><tr><td>BN080</td><td>14.64</td><td>1.2</td><td>4.4</td></tr><tr><td>BN090</td><td>13.03</td><td>7.2</td><td>11.6</td></tr><tr><td>BN090</td><td>13.89</td><td>2.2</td><td>11.6</td></tr><tr><td>BN090</td><td>13.14</td><td>9.2</td><td>11.6</td></tr><tr><td>BN090</td><td>13.5</td><td>3</td><td>11.6</td></tr><tr><td>BN090</td><td>13.3</td><td>7.1</td><td>11.6</td></tr><tr><td>BN090</td><td>14.74</td><td>0.4</td><td>11.6</td></tr><tr><td>BN090</td><td>12.98</td><td>11.6</td><td>11.6</td></tr><tr><td>BN090</td><td>13.04</td><td>6.2</td><td>11.6</td></tr><tr><td>BN090</td><td>13.85</td><td>2.1</td><td>11.6</td></tr><tr><td>BN090</td><td>13.15</td><td>8.2</td><td>11.6</td></tr><tr><td>BN090</td><td>12.99</td><td>10.1</td><td>11.6</td></tr><tr><td>BN090</td><td>14.47</td><td>1.2</td><td>11.6</td></tr><tr><td>BN090</td><td>13.35</td><td>5.9</td><td>11.6</td></tr><tr><td>BN090</td><td>13</td><td>8.7</td><td>11.6</td></tr><tr><td>BN090</td><td>13.17</td><td>4.7</td><td>11.6</td></tr><tr><td>BN090</td><td>13.35</td><td>4.8</td><td>11.6</td></tr><tr><td>BN090</td><td>13.21</td><td>3.6</td><td>11.6</td></tr><tr><td>BN090</td><td>13.37</td><td>3.9</td><td>11.6</td></tr><tr><td>BN100</td><td>12.92</td><td>13.3</td><td>13.3</td></tr><tr><td>BN100</td><td>13.94</td><td>3.2</td><td>13.3</td></tr><tr><td>BN100</td><td>12.92</td><td>13.2</td><td>13.3</td></tr><tr><td>BN100</td><td>12.92</td><td>9</td><td>13.3</td></tr><tr><td>BN100</td><td>12.91</td><td>11.3</td><td>13.3</td></tr><tr><td>BN100</td><td>13.53</td><td>7.5</td><td>13.3</td></tr><tr><td>BN100</td><td>14.35</td><td>0.3</td><td>13.3</td></tr><tr><td>BN100</td><td>13.56</td><td>5</td><td>13.3</td></tr><tr><td>BN100</td><td>14.27</td><td>1.2</td><td>13.3</td></tr><tr><td>BN110</td><td>13.98</td><td>0.3</td><td>6.9</td></tr><tr><td>BN110</td><td>13.43</td><td>2.1</td><td>6.9</td></tr><tr><td>BN110</td><td>13.96</td><td>0.9</td><td>6.9</td></tr><tr><td>BN110</td><td>13.97</td><td>1</td><td>6.9</td></tr><tr><td>BN110</td><td>13.44</td><td>2</td><td>6.9</td></tr><tr><td>BN110</td><td>12.58</td><td>6.9</td><td>6.9</td></tr><tr><td>BN110</td><td>12.59</td><td>5.3</td><td>6.9</td></tr><tr><td>BN110</td><td>12.62</td><td>3.5</td><td>6.9</td></tr></tbody></table>

我想制作一个显示这些温度的轮廓等高线图,但同时也将每个站点的最大深度以下的任何东西都涂黑。我可以通过 ggplot 了解我想要什么:

cols <- colorRampPalette(rev(brewer.pal(11, "Spectral")))
sc <- scale_colour_gradientn(colours = cols(100), limits=c(12, 16))

a <- ggplot(sampleData1, aes(x = factor(Station_No), y = Depth_Sample, colour = Temperature, group = 1)) +
  geom_point(size=4) + #or can use geom_tile here
  scale_y_reverse() +
  sc +
  geom_line(aes(factor(Station_No), Depth_Max, group=1))+
  theme_minimal() +  
  geom_ribbon(aes(ymin=15, ymax=Depth_Max), fill= "grey", col = "grey")
a

但是,我想添加轮廓(而不是点),使其更像我使用的绘图:

p <- plot_ly(data = sampleData1,
         x=~factor(Station_No),
         y=~-Depth_Sample, 
         z=~Temperature, 
         type = "contour", 
         colorscale='Jet')

p

如何将两者结合起来或在 ggplot 或 plotly 中获得相似的情节?

【问题讨论】:

    标签: r ggplot2 plotly contour


    【解决方案1】:

    我终于设法使用 plotly 解决了这个问题,购买添加一个虚拟跟踪并使用“fill ='tonexty'”。

    plot_ly(data = sampleData1,
             x=~factor(Station_No),
             y=~-Depth_Max, 
             type ='scatter', mode = 'ribbon')%>%
    add_trace(x = c("BN030", "BN110"), y =c(-13.3,-13.3), mode = "none", fill='tonexty',
          fillcolor =  'darkgrey', showlegend = FALSE)%>%
    add_trace(x = ~factor(Station_No), y = ~-Depth_Sample,z=~Temperature, type = "contour", colorscale='Jet', showlegend = FALSE)
    

    如果有人有其他答案,我仍然有兴趣使用 ggplot 来做这件事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多