如何使用基于垂直的数据(测井)绘制线图?

How to plot line plot with vertical-based data (well-log)?

我试图在 Altair 中使用 mark_line 函数将地球物理数据(测井数据)绘制成散点图,但线图不是从上到下连接点/点,而是从左右。如果你看左边的图,数据垂直分布很清楚,中间是使用mark_line的结果,右边是我想要的,只是翻转了X和Y轴。

有什么方法可以使绘图的行为与左图一样,但采用行编码?

或者可能是某种形式的 hack 来翻转右图的显示?

chart1 = alt.Chart(w).mark_point(color='green').encode(
  alt.X('GR', scale=alt.Scale(domain=[0,300])),
  alt.Y('DEPT', scale=alt.Scale(domain=[7000, 7100])),
).interactive()


chart2 = alt.Chart(w).mark_line(color='green').encode(
  alt.X('GR', scale=alt.Scale(domain=[0,300])),
  alt.Y('DEPT', scale=alt.Scale(domain=[7000, 7100])),
).interactive()



chart3 = alt.Chart(w).mark_line(color='green').encode(
  alt.Y('GR', scale=alt.Scale(domain=[0,300])),
  alt.X('DEPT', scale=alt.Scale(domain=[7000, 7100])),
).interactive()

chart1 | chart2 | chart3


Plot using Altair

对于那些需要更多信息的人,这是来自钻孔地球物理数据/测井的典型数据集。数据 (GR) 以垂直线显示,与深度 (DEPT) 相对。

感谢您的帮助!

根据我目前的测试,使用 mark_line 的 Altair 散点图将始终默认遵循 X-axis。因此,如果要在 Y-axis 上绘制数据,则必须指定连接线的 order。在下面,我添加了order = 'DEPT',这是情节中的Y-axis。

alt.Chart(
  w

).mark_line(
  color='green', 
  point=True,

).encode(
  alt.X('GR', scale=alt.Scale(domain=[0,250])),
  alt.Y('DEPT', sort = 'descending',scale=alt.Scale(domain=[7000, 7030])),
  order = 'DEPT' #this has to be added to make sure the plot is following the order of Y-axis, DEPT

).configure_mark(
  color = 'red'

).interactive()

结果: