VISUALIZATION - fingeredman/teanaps GitHub Wiki

TEANAPS API Documentation

Visualization

4. teanaps.visualization

4.1. teanaps.visualization.GraphVisualizer

Python Code (in Jupyter Notebook) :

from teanaps.visualization import GraphVisualizer

gv = GraphVisualizer()
  • teanaps.visualization.GraphVisualizer.draw_histogram(data_meta_list, graph_meta) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • μž…λ ₯된 κ·Έλž˜ν”„ 메타정보λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ νžˆμŠ€ν† κ·Έλž¨ κ·Έλž˜ν”„λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

    • Parameters

      • data_meta_list (list) : κ·Έλž˜ν”„μ— ν‘œν˜„ν•  데이터 λ”•μ…”λ„ˆλ¦¬λ₯Ό ν¬ν•¨ν•˜λŠ” 리슀트. Examples μ°Έκ³ .
      • graph_meta (dict) : κ·Έλž˜ν”„ 속성을 μ •μ˜ν•œ λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
    • Returns

      • plotly graph (graph object) : νžˆμŠ€ν† κ·Έλž¨ κ·Έλž˜ν”„.
    • Examples

      Python Code (in Jupyter Notebook) :

      x = ["a", "b", "c", "d", "e", "f"]
      y = [1, 2, 3, 4, 5, 6]
      z = [4, 6, 3, 4, 2, 9]
      
      data_meta_list = []
      
      data_meta = {
          "graph_type": "histogram",
          "data_name": "Y",
          "x_data": x,
          "y_data": y,
          "y_axis": "y1",
      }
      data_meta_list.append(data_meta)
      
      data_meta = {
          "graph_type": "histogram",
          "data_name": "Z",
          "x_data": x,
          "y_data": z,
          "y_axis": "y1"
      }
      data_meta_list.append(data_meta)
      
      graph_meta = {
          "title": "HISTOGRAM",
          "x_tickangle": 0,
          "y1_tickangle": 0,
          "y2_tickangle": 0,
          "x_name": "X",
          "y1_name": "Y1",
          "y2_name": "Y2",
      }
      
      gv.draw_histogram(data_meta_list, graph_meta)
      

      Output (in Jupyter Notebook) : visualization_histogram

  • teanaps.visualization.GraphVisualizer.draw_line_graph(data_meta_list, graph_meta) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • μž…λ ₯된 κ·Έλž˜ν”„ 메타정보λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ 라인 κ·Έλž˜ν”„λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

    • Parameters

      • data_meta_list (list) : κ·Έλž˜ν”„μ— ν‘œν˜„ν•  데이터 λ”•μ…”λ„ˆλ¦¬λ₯Ό ν¬ν•¨ν•˜λŠ” 리슀트. Examples μ°Έκ³ .
      • graph_meta (dict) : κ·Έλž˜ν”„ 속성을 μ •μ˜ν•œ λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
    • Returns

      • plotly graph (graph object) : 라인 κ·Έλž˜ν”„.
    • Examples

      Python Code (in Jupyter Notebook) :

      x = ["a", "b", "c", "d", "e", "f"]
      y = [1, 2, 3, 4, 5, 6]
      z = [4, 6, 3, 4, 2, 9]
      
      data_meta_list = []
      
      data_meta = {
          "data_name": "Y",
          "x_data": x,
          "y_data": y,
          "y_axis": "y1",
      }
      data_meta_list.append(data_meta)
      
      data_meta = {
          "data_name": "Z",
          "x_data": x,
          "y_data": z,
          "y_axis": "y2"
      }
      data_meta_list.append(data_meta)
      
      graph_meta = {
          "title": "LINE GRAPH",
          "x_tickangle": 0,
          "y1_tickangle": 0,
          "y2_tickangle": 0,
          "x_name": "X",
          "y1_name": "Y1",
          "y2_name": "Y2",
      }
      
      gv.draw_line_graph(data_meta_list, graph_meta)
      

      Output (in Jupyter Notebook) : visualization_line_graph

  • teanaps.visualization.GraphVisualizer.draw_matrix(data_meta_list, graph_meta) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • μž…λ ₯된 κ·Έλž˜ν”„ 메타정보λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ 맀트릭슀 κ·Έλž˜ν”„λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

    • Parameters

      • data_meta (dict) : κ·Έλž˜ν”„μ— ν‘œν˜„ν•  데이터 λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
      • graph_meta (dict) : κ·Έλž˜ν”„ 속성을 μ •μ˜ν•œ λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
    • Returns

      • plotly graph (graph object) : 맀트릭슀 κ·Έλž˜ν”„.
    • Examples

      Python Code (in Jupyter Notebook) :

      x = ["A", "B", "C", "D", "E", "F"]
      y = ["AA", "BB", "CC", "DD", "EE", "FF"]
      x_data = []
      y_data = []
      z_data = []
      for x_index in range(len(x)):
          for y_index in range(len(y)):
              x_data.append(x[x_index])
              y_data.append(y[y_index])
              z_data.append(x_index/2 + y_index)
      
      data_meta = {
          "colorbar_title": "Z RANGE",
          "x_data": x_data,
          "y_data": y_data,
          "z_data": z_data
      }
      
      graph_meta = {
          "title": "MATRIX",
          "height": 1000, 
          "width": 1000,
          "y_tickangle": 0,
          "y_name": "Y",
          "x_tickangle": 0,
          "x_name": "X",
      }
      
      gv.draw_matrix(data_meta, graph_meta)
      

      Output (in Jupyter Notebook) : visualization_matrix

  • teanaps.visualization.GraphVisualizer.draw_scatter(data_meta_list, graph_meta) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • μž…λ ₯된 κ·Έλž˜ν”„ 메타정보λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ 산점도 κ·Έλž˜ν”„λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

    • Parameters

      • data_meta_list (list) : κ·Έλž˜ν”„μ— ν‘œν˜„ν•  데이터 λ”•μ…”λ„ˆλ¦¬λ₯Ό ν¬ν•¨ν•˜λŠ” 리슀트. Examples μ°Έκ³ .
      • graph_meta (dict) : κ·Έλž˜ν”„ 속성을 μ •μ˜ν•œ λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
    • Returns

      • plotly graph (graph object) : 산점도 κ·Έλž˜ν”„.
    • Examples

      Python Code (in Jupyter Notebook) :

      x1 = [1, 2, 3, 4, -5, 6]
      y1 = [-4, 6, 3, 4, 2, 9]
      label1 = ["a", "b", "c", "d", "e", "f"]
      
      x2 = [6, 7, 2, -4, 5, 2]
      y2 = [1, 3, 5, 2, -7, 9]
      label2 = ["A", "B", "C", "D", "E", "F"]
      
      data_meta_list = []
      
      data_meta = {
          "data_name": "COORDINATES1",
          "x_data": x1,
          "y_data": y1,
          "label": label1
      }
      data_meta_list.append(data_meta)
      
      data_meta = {
          "data_name": "COORDINATES2",
          "x_data": x2,
          "y_data": y2,
          "label": label2
      }
      data_meta_list.append(data_meta)
      
      graph_meta = {
          "title": "SCATTER",
          "x_name": "X",
          "y_name": "Y"
      }
      
      gv.draw_scatter(data_meta_list, graph_meta)
      

      Output (in Jupyter Notebook) : visualization_scatter

  • teanaps.visualization.GraphVisualizer.draw_radar(data_meta, graph_meta) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • μž…λ ₯된 κ·Έλž˜ν”„ 메타정보λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ λ ˆμ΄λ‹€ κ·Έλž˜ν”„λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

    • Parameters

      • data_meta (dict) : κ·Έλž˜ν”„μ— ν‘œν˜„ν•  데이터 λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
      • graph_meta (dict) : κ·Έλž˜ν”„ 속성을 μ •μ˜ν•œ λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
    • Returns

      • plotly graph (graph object) : λ ˆμ΄λ‹€ κ·Έλž˜ν”„.
    • Examples

      Python Code (in Jupyter Notebook) :

      x = ["a", "b", "c", "d", "e", "f"]
      r = [1, 2, 3, 4, 5, 6]
      
      data_meta = {
          'label': x,
          'r': r,
      }
      
      graph_meta = {
          "title": "RADAR GRAPH",
          "axis": True,
      }
      
      gv.draw_radar(data_meta, graph_meta)
      

      Output (in Jupyter Notebook) : visualization_scatter

4.2. teanaps.visualization.TextVisualizer

Python Code (in Jupyter Notebook) :

from teanaps.visualization import TextVisualizer

tv = TextVisualizer()
  • teanaps.visualization.Textvisualizer.draw_sentence_attention(token_list, weight_list) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • ν˜•νƒœμ†Œ λ‹¨μœ„λ‘œ λΆ„λ¦¬λœ λ¬Έμž₯κ³Ό 각 ν˜•νƒœμ†Œλ³„ κ°€μ€‘μΉ˜λ₯Ό λ°”νƒ•μœΌλ‘œ λ¬Έμž₯의 νŠΉμ • 뢀뢄을 ν•˜μ΄λΌμ΄νŠΈν•œ ν˜•νƒœμ˜ λ¬Έμž₯ κ·Έλž˜ν”„λ‘œ 좜λ ₯ν•©λ‹ˆλ‹€.

    • Parameters

      • token_list (list) : ν˜•νƒœμ†Œ λ‹¨μœ„λ‘œ λΆ„λ¦¬λœ λ¬Έμž₯의 각 ν˜•νƒœμ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” 리슀트.
      • weight_list (list) : ν˜•νƒœμ†Œ λ‹¨μœ„λ‘œ λΆ„λ¦¬λœ λ¬Έμž₯의 각 ν˜•νƒœμ†Œμ— ν•΄λ‹Ήν•˜λŠ” κ°€μ€‘μΉ˜λ₯Ό ν¬ν•¨ν•˜λŠ” 리슀트.
    • Returns

      • plotly graph (graph object) : λ¬Έμž₯ κ·Έλž˜ν”„.
    • Examples

      Python Code (in Jupyter Notebook) :

      sentence = "λ¬Έμž₯μ—μ„œ μ€‘μš”ν•œ 뢀뢄을 음영으둜 κ°•μ‘°ν•˜μ—¬ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€."
      token_list = sentence.split(" ")
      #token_list = ['λ¬Έμž₯μ—μ„œ', 'μ€‘μš”ν•œ', '뢀뢄을', "음영으둜", 'κ°•μ‘°ν•˜μ—¬', 'ν‘œν˜„ν•˜κΈ°', 'μœ„ν•΄', 'μ‚¬μš©λ©λ‹ˆλ‹€.']
      weight_list = [1, 5, 2, 1, 4, 2, 1, 1]
      
      tv.draw_sentence_attention(token_list, weight_list)
      

      Output (in Jupyter Notebook) : visualization_sentence_attention

      Python Code (in Jupyter Notebook) :

      sentence = "κ°€μ€‘μΉ˜κ°€ μ–‘μˆ˜λ©΄ νŒŒλž€μƒ‰, 음수면 λΉ¨κ°„μƒ‰μœΌλ‘œ μŒμ˜μ„ ν‘œν˜„ν•©λ‹ˆλ‹€."
      token_list = sentence.split(" ")
      #token_list = ['κ°€μ€‘μΉ˜κ°€', 'μ–‘μˆ˜λ©΄', 'νŒŒλž€μƒ‰,', "음수면", 'λΉ¨κ°„μƒ‰μœΌλ‘œ', 'ν‘œν˜„ν•©λ‹ˆλ‹€.']
      weight_list = [0, 2, 5, -1, -4, 0, 0, 0]
      
      tv.draw_sentence_attention(token_list, weight_list)
      

      Output (in Jupyter Notebook) : visualization_sentence_attention_pn

  • teanaps.visualization.Textvisualizer.draw_wordcloud(data_meta, graph_meta) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • 단어와 κ·Έ κ°€μ€‘μΉ˜λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ μ›Œλ“œν΄λΌμš°λ“œ 이미지λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

    • graph_meta의 mask_path에 이미지 경둜λ₯Ό μΆ”κ°€ν•˜λ©΄ μ›ν•˜λŠ” λͺ¨μ–‘/μƒ‰μƒμ˜ μ›Œλ“œν΄λΌμš°λ“œλ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • Parameters

      • data_meta (dict) : κ·Έλž˜ν”„μ— ν‘œν˜„ν•  데이터 λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
      • graph_meta (dict) : κ·Έλž˜ν”„ 속성을 μ •μ˜ν•œ λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
    • Returns

      • figure (matplotlib.pyplot.plt) : μ›Œλ“œν΄λ¦¬μš°λ“œ.
    • Examples

      Python Code (in Jupyter Notebook) :

      tf = {
          "TEANAPS": 10,
          "teanaps.com": 4,
          "fingeredman": 2,
          "ν…μŠ€νŠΈλ§ˆμ΄λ‹": 3,
          "μžμ—°μ–΄μ²˜λ¦¬": 4,
          "감성뢄석": 1,
          "λ‹¨μ–΄λΉˆλ„": 1,
          "TFIDF": 1,
          "μš”μ•½": 1,
          "λ‹¨μ–΄λ„€νŠΈμ›Œν¬": 1,
          "ν˜•νƒœμ†ŒλΆ„μ„": 1,
          "개체λͺ…인식": 1,
          "ꡬ문뢄석": 1
      }
      
      data_meta = {
          "weight_dict": tf,
      }
      
      graph_meta = {
          "height": 1000, 
          "width": 1000,
          "min_font_size": 10,
          "max_font_size": 500,
          "margin": 10,
          "background_color": "white",
          "mask_path": None
      }
      
      tv.draw_wordcloud(data_meta, graph_meta)
      

      Output (in Jupyter Notebook) : visualization_wordcloud

  • teanaps.visualization.Textvisualizer.draw_network(data_meta, graph_meta, mode="text+markers", centrality_th=0.5, ego_node_list=[], node_size_rate=10, edge_width_rate=10, text_size_rate=10) Top(https://github.com/fingeredman/teanaps/wiki/VISUALIZATION#teanaps-api-documentation)

    • 단어와 κ·Έ κ°€μ€‘μΉ˜, 그리고 μˆœμ„œμŒμ„ λ°”νƒ•μœΌλ‘œ μƒμ„±λœ λ„€νŠΈμ›Œν¬ 이미지λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

    • Parameters

      • data_meta (dict) : κ·Έλž˜ν”„μ— ν‘œν˜„ν•  데이터 λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
      • graph_meta (dict) : κ·Έλž˜ν”„ 속성을 μ •μ˜ν•œ λ”•μ…”λ„ˆλ¦¬. Examples μ°Έκ³ .
      • mode (str) : κ·Έλž˜ν”„μ—μ„œ λ…Έλ“œλ₯Ό ν‘œν˜„ν•˜λŠ” μ˜΅μ…˜, {"text+markers", "markers", "text"} 쀑 ν•˜λ‚˜ μž…λ ₯. Examples μ°Έκ³ .
      • centrality_th (float) : λ…Έλ“œ 필터링 κΈ°μ€€ 쀑심성 수치. μž…λ ₯ν•œ κ°’ μ΄μƒμ˜ 쀑심성을 κ°€μ§„ λ…Έλ“œλ§Œ κ·Έλž˜ν”„μ— ν‘œν˜„λ¨.
      • ego_node_list (list) : 에고 λ„€νŠΈμ›Œν¬λ₯Ό 생성할 μ€‘μ‹¬λ…Έλ“œ 리슀트. μž…λ ₯된 λ…Έλ“œμ™€ 직접 μ—°κ²°λœ λ…Έλ“œλ§Œ κ·Έλž˜ν”„μ— ν‘œν˜„λ¨.
      • node_size_rate (int) : λ…Έλ“œ μ‚¬μ΄μ¦ˆ ν‘œν˜„ κ°€μ€‘μΉ˜. μˆ˜μΉ˜κ°€ λ†’μ„μˆ˜λ‘ λ…Έλ“œμ˜ 크기가 크게 ν‘œν˜„λ¨.
      • edge_width_rate (int) : μ—£μ§€ λ‘κ»˜ ν‘œν˜„ κ°€μ€‘μΉ˜. μˆ˜μΉ˜κ°€ λ†’μ„μˆ˜λ‘ μ—£μ§€μ˜ λ‘κ»˜κ°€ κ°€λŠ˜κ²Œ ν‘œν˜„λ¨.
      • text_size_rate (int) : ν…μŠ€νŠΈ λ ˆμ΄λΈ” 크기 ν‘œν˜„ κ°€μ€‘μΉ˜. μˆ˜μΉ˜κ°€ λ†’μ„μˆ˜λ‘ ν…μŠ€νŠΈ λ ˆμ΄λΈ” 크기가 μž‘κ²Œ ν‘œν˜„λ¨.
    • Returns

      • plotly graph (graph object) : λ„€νŠΈμ›Œν¬ κ·Έλž˜ν”„.
    • Examples

      Python Code (in Jupyter Notebook) :

      data_meta = {
          "node_list": ["a", "b", "c", "d", "e", "f"],
          "edge_list": [("a", "b", 1), ("c", "d", 10), ("a", "c", 15), ("b", "d", 1),
                        ("a", "f", 20), ("a", "e", 5), ("e", "d", 1), ("d", "f", 5)],
          "weight_dict": {
              "a": 4,
              "b": 2,
              "c": 2,
              "d": 3,
              "e": 2,
              "f": 2
          }
      }
      
      graph_meta = {
          "title": "WORD NETWORK",
          "height": 1000, 
          "width": 1000,
          "weight_name": "Weight",
      }
      
      tv.draw_network(data_meta, graph_meta, mode="text+markers", node_size_rate=7, edge_width_rate=5)
      

      Output (in Jupyter Notebook) : visualization_network