루비로 바이올린 그림을 만든 [Plattly]

14940 단어 IRubyscirubyRubyplotly
안녕하세요.
IRubby+JupytherLab 사용자에게만 한정되지만 Ruby+Plattly로 바이올린 그림을 그리는 것은 매우 간단하다.
환경 준비가 좀 힘들어요.

차리다


전제적으로 Jupter Lab+IRuby 환경을 가져옵니다.IRubby의 가져오기는 곳곳에 함정이 있지만, 각종 웹 정보를 참조하여 Giithub master에서 최신 버전을 설치하는 것을 추천합니다.
https://github.com/SciRuby/iruby
  • plotly-extension을 가져옵니다.
    https://github.com/jupyterlab/jupyter-renderers/tree/master/packages/plotly-extension
  • iruby-plotly를 설치합니다.
    https://github.com/zach-capalbo/iruby-plotly
  • gem specific_install https://github.com/zach-capalbo/iruby-plotly
    

    Iris 데이터 집합을 사용하여 바이올린 그림을 테스트하다


    Jupyter Lab을 시작합니다.
    여기서 Gem을 사용하여 Iris 데이터 세트를 호출합니다.
    require 'rdatasets'
    require 'iruby/plotly'
    
    iris = RDatasets.datasets.iris
    iris.head(5)
    
    species = iris.Species.to_a.uniq
    
    ["setosa", "versicolor", "virginica"]
    data = species.map do |sp|
      sepal_length = iris.where(iris["Species"].eq sp)["Sepal.Length"].to_a
      {y: sepal_length, type:"violin", name: sp}
    end
    
    여기서 만든 데이터는 다음과 같은 대상이다.바이올린 줄거리만 해보고 싶은 사람은 이쪽부터 시작해 주세요.
    data = [{:y=>[5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6, 5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5, 5, 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5, 5.5, 4.9, 4.4, 5.1, 5, 4.5, 4.4, 5, 5.1, 4.8, 5.1, 4.6, 5.3, 5],
    :type=>"violin",
    :name=>"setosa"},
    
    {:y=>[7, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5, 5.9, 6, 6.1, 5.6, 6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7, 6, 5.7, 5.5, 5.5, 5.8, 6, 5.4, 6, 6.7, 6.3, 5.6, 5.5, 5.5, 6.1, 5.8, 5, 5.6, 5.7, 5.7, 6.2, 5.1, 5.7],
    :type=>"violin",
    :name=>"versicolor"},
    
    {:y=>[6.3, 5.8, 7.1, 6.3, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5, 7.7, 7.7, 6, 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2, 7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6, 6.9, 6.7, 6.9, 5.8, 6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9],
    :type=>"violin",
    :name=>"virginica"}]
    
    IRuby.plot(
      data,
      title: "Rubyのバイオリンプロット",
      width: 600, height: 600
      )
    

    추가 히스토그램

    data = species.map do |sp|
      sepal_length = iris.where(iris["Species"].eq sp)["Sepal.Length"].to_a
      {x: sepal_length, opacity: 0.6, type:"histogram", name: sp}
    end
    
    IRuby.plot(
      data,
      title: "Rubyのヒストグラム",
      width: 600, height: 600, barmode: "overlay"
      )
    

    이런 느낌으로 간단하게 도표를 그릴 수 있다.
    이상은 이 보도입니다.

    좋은 웹페이지 즐겨찾기