Как заполнить область под каждой строкой отдельно с помощью Plots.jl?

Я пробовал заполнить область под каждой строкой отдельно с помощью Plots.jl. Вот мой код:

using Plots;
gr()
Data = Tuple{Float64,Float64}[]
p=plot([0.1,1.0],[1,1],fill=(0,:green))
push!(p,[1.6,1.8],[1,1])
push!(p,[2.2,2.5],[1,1])
push!(p,[3.2,3.5],[1,1])

но это не работа

результат

Как сделать это правильно, если это возможно?

1 ответ

Решение

Непонятно, что вы хотите, но я думаю, что вы пытаетесь покрыть прямоугольные области. Вот один из способов сделать это:

p=plot([0.1, 1.0], [1, 1],fill=(0,:green))
append!(p, 1, [1.0,1.6,1.6,1.8], [0,0,1,1])
append!(p, 1, [1.8,2.2,2.2,2.5], [0,0,1,1])
append!(p, 1, [2.5,3.2,3.2,3.5], [0,0,1,1])

Обратите внимание, что вам также необходимо указать "нулевые области", в противном случае график области будет объединен через "пробел в данных", что приведет к непрерывной зеленой области. (в равной степени, если вы добавляете только отдельные точки вместо сегментов "ноль" и "один", вы получите линейный рост вместо крутого подъема).

введите описание изображения здесь

Другие вопросы по тегам