How to Use Hexadecimal RGB Codes (HEX) in Julia
Code
The package provided for handling colors in Julia is Colors.jl. By loading the visualization package Plots.jl, one can also use the functionality within Colors.jl. Color codes representing the RGB space, such as RGB, BGR, RGB24, RGBX, XRGB, are supported and are subtypes of AbstractRGB. RGBA is RGB with added transparency.
julia> using Plots
julia> subtypes(AbstractRGB)
5-element Vector{Any}:
BGR
RGB
RGB24
RGBX
XRGB
julia> subtypes(AbstractRGBA)
2-element Vector{Any}:
BGRA
RGBA
Strings
By inputting a string such as "#FF0000" as a color keyword in the plot() function, one can use the HEX code, a hexadecimal RGB code. As one can see below, the reason why string input is also feasible seems to be because plot() automatically parses the string.
using Plots
r = "#FF0000" # R빨간색 RGB(255, 0, 0)의 6자리 HEX 코드
g = "#00FF0033" # 투명도가 0.2인 초록색 RGBA(0, 255, 0, 0.2)의 8자리 HEX 코드
p = "#80F" # 보라색 RGB(255, 0, 136)의 3자리 HEX 코드
plot([1 2 3; 2 3 4], ones(2, 3), fillrange = 2,
fillcolor = [r g p],
label = [r g p])

Parsing
HEX codes can be parsed in the form of colorant"#FF0000".
julia> r = colorant"#FF0000" # R빨간색 RGB(255, 0, 0)의 6자리 HEX 코드
RGB{N0f8}(1.0,0.0,0.0)
julia> g = colorant"#00FF0033" # 투명도가 0.2인 초록색 RGBA(0, 255, 0, 0.2)의 8자리 HEX 코드
RGBA{N0f8}(0.0,1.0,0.0,0.2)
julia> p = colorant"#80F" # 보라색 RGB(255, 0, 136)의 3자리 HEX 코드
RGB{N0f8}(0.533,0.0,1.0)
julia> plot([1 2 3; 2 3 4], ones(2, 3), fillrange = 2,
fillcolor = [r g p])

It can also be parsed as parse(RGB, "#FF0000").
julia> parse(RGB, "#FF0000")
RGB{N0f8}(1.0,0.0,0.0)
julia> parse(RGBA, "#FF000080")
RGBA{N0f8}(1.0,0.0,0.0,0.502)
Getting Color Names
The hex() function returns the color’s HEX code as a string.
julia> hex(colorant"red")
"FF0000"
julia> hex(colorant"rgb(0, 255, 128)")
"00FF80"
julia> hex(RGBA(1, 0.5, 0, 0.5), :RRGGBB)
"FF8000"
julia> hex(RGBA(1, 0.5, 0, 0.5), :RRGGBBAA)
"FF800080"
julia> hex(HSV(30,1.0,1.0), :AARRGGBB)
"FFFF8000"
See Also
Environment
- OS: Windows11
- Version: Julia 1.9.4, Plots v1.39.0, Colors v0.12.10, FixedPointNumbers v0.8.4
