绘制分段数据,x轴限制

时间:2019-02-20 15:10:39

标签: julia

我将Julia与Plots一起使用以生成我的图。

我想绘制数据(A,B),我知道所有有趣的数据都位于A的两个区域中。这两个区域应该在一个图中相互绘制。 我的A数据间隔均匀。因此,我要做的是切出有趣的片段并将其粘贴到一个对象中。

我的问题是我不知道如何在x轴上操作缩放比例。 当我将B数据针对它们的数组索引绘制时,我基本上得到了想要的形式。我只需要x轴上A的数字即可。

我在这里举一个玩具示例

using Plots

N=5000
B=rand(N)
A=(1:1:N)
xl_1=100
xu_1=160
xl_2=600
xu_2=650

A_new=vcat(A[xl_1:xu_1],A[xl_2:xu_2])
B_new=vcat(B[xl_1:xu_1],B[xl_2:xu_2])

plot(A_new,B_new)     # This leaves the spacing between the data explicit

plot(B_new)           # This creats basically the right spacing, but   
                      # without the right x axis grid

我没有发现任何可以使用两个连续xlim的东西,因此我以这种方式尝试。

1 个答案:

答案 0 :(得分:0)

您不能传递两个连续的xlim,因为您不能在轴上中断。这是情节设计的。 因此,您可能会发生以下情况:1)拥有两个具有不同图部分的子图,或2)使用索引进行图绘制,而只需更改轴标签。 第二种方法将使用诸如xticks = ([1, 50, 100, 150], ["1", "50", "600", "650"]之类的命令,但我建议使用第一种方法,因为严格来讲,这是一种显示数据的更正确方法:

plot(
       plot(A[xl_1:xu_1], B[xl_1:xu_1], legend = false),
       plot(A[xl_2:xu_2], B[xl_2:xu_2], yshowaxis = false),
       link = :y
)