#julia #makie.jl
Вопрос:
Я новичок в Джулии, я хочу построить простую диаграмму рассеяния из фрейма данных, где цвета закодированы как шестнадцатеричный код String7, снимок,
Row │ x y ncv_color
│ Int64 Int64 String7
─────┼─────────────────────────
1 │ 120 4180 #005529
2 │ 120 3890 #004903
3 │ 110 4670 #004E66
4 │ 120 8270 #004A99
5 │ 120 9620 #005C5A
когда я использую следующий код для рисования диаграммы рассеяния, это работает.
scatter(df.x, df.y)
Хотя, когда я использую
Как предложил @ginkul, используя это
scatter(df2, df2, color=df.ncv_color)
Я получаю FigureAxisPlot()
в качестве вывода, и график не отображается.
Любая помощь будет признательна.
versioninfo
Julia Version 1.6.3
Commit ae8452a9e0 (2021-09-23 17:34 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: AMD EPYC 7542 32-Core Processor
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, znver2)
Ответ №1:
Проблема в том, что вы выдаете ncv_color
себя за Symbol
А. Например, вы действительно можете передать Symbol
как цвет , :red
но так как такого цвета нет ncv_color
, то ничего не может быть отображено. scatter
не знает, что вы подразумеваете колонку df
. Вам нужно явно передать свой массив.
scatter(df.x, df.y, color = df.ncv_color)
Комментарии:
1. Спасибо за ответ, я понял, что проблема не в этом, это потому, что Маки-скаттер не может преобразовываться
String7
в цветовые коды. После этой строки,df.ncv_color = convert(Vector{String}, df.ncv_color)
,scatter(df.x, df.y, color=:ncv_color)
начал работать.2. Я хотел сказать, что это не единственная проблема