Size: a a a

Язык программирования Julia / Julia programming language

2020 February 05

FO

FORTRAN ONE LOVE in Язык программирования Julia / Julia programming language
Андрей Оськин
Я знаю как это делать только в ggplot 😊 Но его увы не завезли.
Разве что gadfly, но никогда толком его не смотрел.
R c Julia не интеропится?(
источник

FO

FORTRAN ONE LOVE in Язык программирования Julia / Julia programming language
можно С++ заюзать для этого...
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Овчинка выделки не стоит 😊
Просто лень/нет времени искать, как это сделать.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Андрей Оськин
Vega кстати довольно интересная.
Я с ней поработал - в ней очень много чего есть, чтобы быстро строить нужные графики, и интерфейс в целом достаточно интуитивный.
Как там с источниками данных? Сотни тысяч точек гонять через JSON не вариант...
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
и можно ли WebGL настроить у нее?
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
А, не пробовал такого, да.

Думаю, что надо инструмент по задаче подбирать. Думаю, что сотни тысяч точек лучше как-то по другому показывать, это факт. Makie вроде как под это заточена.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Вообще, у меня как-то было, что я пытался сотни тысяч точек показать, мучался, а потом понял, что с таким же успехом можно сэмпл показать, или тепловую карту плотности.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Не в веге это было, а вообще.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Так бинарные данные можно туда пихнуть, или только текст?
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Я хз, если честно 😊))
Интерфейсно для меня выглядит, что на вход подаётся DataFrame, как уж он представляется дальше - не знаю.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Наверное в JSON перегоняется, да.
источник
2020 February 09

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Хм, стыдно признаться, но только сейчас понял, что generated функции могут быть довольно полезной штукой.

Например, при манипуляциях с tuple

Пример
@generated function dropxx(t::NTuple{N}) where N
   ex = :()
   for i in 2:N-1
       ex = :($ex..., t[$i])
   end
   return ex
end

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

@code_typed dropxx((1, 2, 3, 4, 5))


CodeInfo(
1 ─ %1 = Base.getfield(t, 2, true)::Int64
│   %2 = Base.getfield(t, 3, true)::Int64
│   %3 = Base.getfield(t, 4, true)::Int64
│   %4 = Core.tuple(%1, %2, %3)::Tuple{Int64,Int64,Int64}
└──      return %4
) => Tuple{Int64,Int64,Int64}


При этом она разумеется type stable и скорость безумная.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Минус только в том, что каждый новый тупл будет вызывать новую компиляцию, что в итоге может привести к большему времени выполнения, если на входе туплы могут быть произвольных размеров.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
хехе, в дискурсе на меня наругались за использование generated.
В данном конкретном случае, можно просто ntuple использовать

function dropxx(t::NTuple)
   ntuple(i -> t[i + 1], length(t) - 2)
end
источник

GI

Gleb Ivashkevich in Язык программирования Julia / Julia programming language
это чего, спам такой незамысловатый?
источник

FO

FORTRAN ONE LOVE in Язык программирования Julia / Julia programming language
Gleb Ivashkevich
это чего, спам такой незамысловатый?
Да
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Андрей Оськин
хехе, в дискурсе на меня наругались за использование generated.
В данном конкретном случае, можно просто ntuple использовать

function dropxx(t::NTuple)
   ntuple(i -> t[i + 1], length(t) - 2)
end
И какой код она генерирует
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Ntuple вроде не type stable
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
В данном случае она ровно то, что нужно генерирует.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Потому что она тип поймала из аргумента функции.
источник