줄리아 Plots에서 플랏의 프로퍼티 목록
설명
줄리아 Plots.jl
에서는 플랏plot, 도표도 하나의 객체object이다. 빈 플랏을 그려 타입을 확인해보면 다음과 같다.
julia> using Plots
julia> p = plot()
julia> p |> typeof
Plots.Plot{Plots.GRBackend}
Plots.
를 떼고 보면 Plot{GRBackend}
인데, 원소의 자료형이 Float64
인 벡터가 Vector{Float64}
와 같이 표기되는 것과 같이 백엔드가 GR인 플랏이라는 뜻이다. Plot
의 프로퍼티를 확인해보면 다음과 같다.
julia> p |> propertynames
(:backend, :n, :attr, :series_list, :o, :subplots, :spmap, :layout, :inset_subplots, :init)
각 프로퍼티는 그림의 속성attributes을 포함하는 벡터이거나 딕셔너리이거나 하는 식이다.
p.backend
플랏의 백엔드이다.
julia> p.backend
Plots.GRBackend()
p.attr
그림 속성attributes에 대한 딕셔너리이다. 아래와 같은 30개의 키-밸류를 포함한다.
julia> plot(rand(10, 4), layout = 4).attr
RecipesPipeline.DefaultsDict with 30 entries:
:dpi => 100
:background_color_outside => :match
:plot_titlefontvalign => :vcenter
:warn_on_unsupported => true
:background_color => RGBA{Float64}(1.0,1.0,1.0,1.0)
:inset_subplots => nothing
:size => (600, 400)
:display_type => :auto
:overwrite_figure => true
:html_output_format => :auto
:plot_titlefontfamily => :match
:plot_titleindex => 0
:foreground_color => RGB{N0f8}(0.0,0.0,0.0)
:window_title => "Plots.jl"
:plot_titlefontrotation => 0.0
:extra_plot_kwargs => Dict{Any, Any}()
:pos => (0, 0)
:plot_titlefonthalign => :hcenter
:tex_output_standalone => false
:extra_kwargs => :series
:thickness_scaling => 1
:layout => 4
:plot_titlelocation => :center
:plot_titlefontsize => 16
:plot_title => ""
:show => false
:link => :none
:plot_titlefontcolor => :match
:plot_titlevspan => 0.05
:fontfamily => "sans-serif"
julia> plot(rand(10, 4), layout = 4).attr[:size]
(600, 400)
p.series_list
각 데이터의 그래프에 대한 속성의 딕셔너리를 원소로하는 벡터이다.
julia> plot(rand(10,5)).series_list
5-element Vector{Plots.Series}:
julia> plot(plot(rand(10, 4)), plot(rand(10, 3))).series_list
7-element Vector{Plots.Series}:
각 딕셔너리에 포함된 키-밸류는 다음과 같다.
julia> plot(rand(10, 2)).series_list[1].plotattributes
RecipesPipeline.DefaultsDict with 62 entries:
:plot_object => Plot{Plots.GRBackend() n=2}
:subplot => Subplot{1}
:label => "y1"
:fillalpha => nothing
:linealpha => nothing
:linecolor => RGBA{Float64}(0.0,0.605603,0.97868,1.0)
:x_extrema => (NaN, NaN)
:series_index => 1
:markerstrokealpha => nothing
:markeralpha => nothing
:seriestype => :path
:z_extrema => (NaN, NaN)
:x => Base.OneTo(10)
:markerstrokecolor => RGBA{Float64}(0.0,0.0,0.0,1.0)
:fillcolor => RGBA{Float64}(0.0,0.605603,0.97868,1.0)
:clims_calculated => (NaN, NaN)
:seriescolor => RGBA{Float64}(0.0,0.605603,0.97868,1.0)
:extra_kwargs => Dict{Symbol, Any}()
:z => nothing
:series_plotindex => 1
:y => [0.477103, 0.00362131, 0.864524, 0.391488, 0.663659, 0.89787, 0.157973, 0.964416, 0.806635, 0.243531]
:markercolor => RGBA{Float64}(0.0,0.605603,0.97868,1.0)
:y_extrema => (0.00362131, 0.964416)
:linewidth => 1
:group => nothing
:stride => (1, 1)
:permute => :none
:marker_z => nothing
:show_empty_bins => false
:seriesalpha => nothing
:smooth => false
:zerror => nothing
:arrow => nothing
:normalize => false
:linestyle => :solid
:contours => false
:bar_width => nothing
:bins => :auto
:markerstrokestyle => :solid
:weights => nothing
:z_order => :front
:fill_z => nothing
:markershape => :none
:markerstrokewidth => 1
:xerror => nothing
:bar_position => :overlay
:contour_labels => false
:hover => nothing
:primary => true
:yerror => nothing
:ribbon => nothing
:fillstyle => nothing
:line_z => nothing
:orientation => :vertical
:markersize => 4
:bar_edges => false
:quiver => nothing
:fillrange => nothing
:colorbar_entry => true
:series_annotations => nothing
:levels => 15
:connections => nothing
julia> plot(rand(10, 2)).series_list[1][:label]
"y1"
환경
- OS: Windows11
- Version: Julia 1.9.4, Plots v1.39.0