Маки возвращает пустые участки

#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. Я хотел сказать, что это не единственная проблема