๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Django_Web

Fusion chart , h1 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ถ”๊ฐ€, ์„œ๋น„์Šค ๋””๋ฒจ๋กญํ•˜๊ธฐ

by ๋„์บ๋ฆฌ๐Ÿฑ 2021. 7. 30.
๋ฐ˜์‘ํ˜•

๐Ÿ‘‰ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•  ๋ถ€๋ถ„

 

์ผ๋‹จ, h1 ๋„ Protocol ๋ช…๋งŒ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„œ ๋“ค์–ด๊ฐˆ ๋ฟ, ์—…๋กœ๋“œ ๋˜๋Š” ๊ณผ์ •์€ ๊ฐ™๋‹ค. 

์—…๋กœ๋“œ ์ดํ›„ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค.

 

group_chart ๋กœ ๊ฐ€๋ฉด, file_group ๋ณ„๋กœ h1๊ณผ h2๋ฅผ ๊ตฌ๋ถ„์ง€์–ด์„œ ๋‘๊ฐ€์ง€์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค์•ผ ํ•œ๋‹ค.

fusion chart ์—์„œ ์š”๋กœ์ฝ”๋กฌ

๋ฌด์—‡์ด ๋” ๋น„๊ต๊ฐ€ ์ž˜๋ ๊นŒ..?

๊บพ์€์„ ์œผ๋กœ..?

 ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ๊ฒฐ์ •.

 

 

 


 

Fusion Chart ์—์„œ Multi-series Charts ์ด๋ถ€๋ถ„์„ ์ฐพ์•˜๊ณ , ์–ด๋–ป๊ฒŒ ์ƒ๊ฒจ๋จน์—ˆ๋Š”์ง€ ๋ณด์•˜๋‹ค. 

https://www.fusioncharts.com/charts/column-bar-charts/grouped-column-chart-with-multiple-series?framework=python

 

์•„๋ž˜ ์ฝ”๋“œ ์ฒจ๋ถ€ํ•œ ๊ฑฐ๋ฅผ Django์—์„œ ์ž‘๋™ํ•˜๊ฒŒ ๋Œ๋ ค์„œ ํ™•์ธํ•ด๋ณด๋ฉด ์œ„์™€ ๊ฐ™๋‹ค. 
single ์ผ ๋•Œ ์ƒํƒœ (์–ด๋–ค ๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ์–ด์•ผ ํ• ์ง€ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ–ˆ๋‹ค.)

 

 

html ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ( ์‚ฌ์ดํŠธ ์ œ๊ณต)

<!DOCTYPE html>
<html>
  <head>
    <title>Django Wrapper | FusionCharts</title>
    {% load static %}
    <script
      type="text/javascript"
      src="{% static 'fusioncharts/fusioncharts.js' %}"
    ></script>
    <script
      type="text/javascript"
      src="{% static 'fusioncharts/themes/fusioncharts.theme.fint.js' %}"
    ></script>
  </head>
  <body>
    <!-- FusionCharts will render here-->
    <div id="chart-1"></div>
    <!-- dumping JavaScript code here -->
    {{ output|safe }}
  </body>
</html>

 

python ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. (์‚ฌ์ดํŠธ ์ œ๊ณต)

# multi_chart_template
def multi_chart(request):
   chartObj = FusionCharts( 'mscolumn2d', 'ex1', '600', '400', 'chart-1', 'json', """{
  
  "chart": {
    "caption": "App Publishing Trend",
    "subcaption": "2012-2016",
    "xaxisname": "Years",
    "yaxisname": "Total number of apps in store",
    "formatnumberscale": "1",
    "plottooltext": "<b>$dataValue</b> apps were available on <b>$seriesName</b> in $label",
    "theme": "fusion",
    "drawcrossline": "1"
  },
  "categories": [
    {
      // nums ๊ฐ€ ๋“ค์–ด๊ฐ€์•ผํ•จ       
      "category": [
        {
          "label": "2012"
        },
        {
          "label": "2013"
        },
        {
          "label": "2014"
        },
        {
          "label": "2015"
        },
        {
          "label": "2016"
        }
      ]
    }
  ],
  "dataset": [
    {
        // h1, h2 = seriesname
      "seriesname": "iOS App Store",
      "data": [
        {
          "value": "125000"
        },
        {
          "value": "300000"
        },
        {
          "value": "480000"
        },
        {
          "value": "800000"
        },
        {
          "value": "1100000"
        }
      ]
    },
    {
      "seriesname": "Google Play Store",
      "data": [
        {
          "value": "70000"
        },
        {
          "value": "150000"
        },
        {
          "value": "350000"
        },
        {
          "value": "600000"
        },
        {
          "value": "1400000"
        }
      ]
    },
    {
      "seriesname": "Amazon AppStore",
      "data": [
        {
          "value": "10000"
        },
        {
          "value": "100000"
        },
        {
          "value": "300000"
        },
        {
          "value": "600000"
        },
        {
          "value": "900000"
        }
      ]
    }
  ]
}""")
   return render(request, 'multi_chart.html', {'output': chartObj.render()})

์–ด๋–ป๊ฒŒ ์ƒ๊ฒจ๋จน์—ˆ๋Š”์ง€ ํ™•์ธ ํ–ˆ์œผ๋‹ˆ ๋‚ด ์„œ๋น„์Šค์— ๋งž๊ฒŒ ์ ์šฉํ•ด๋ณด์ž!

(์ด์ „ ํฌ์ŠคํŠธ์— ์ž‘์„ฑํ•œ h1์— ํ•ด๋‹นํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค.)

 

 

json ์ธ์ฝ”๋”ฉ : Python Object (Dictionary, List, Tuple ๋“ฑ) ๋ฅผ JSON ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ JSON Encoding 

1. ์›ํ•˜๋Š” ๊ฐ’๋“ค๋กœ json ํ˜•์‹์— ๋งž๊ฒŒ ๊ตฌํ˜„๋œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค. 

    json.loads(jsonString) ํ•จ์ˆ˜๋กœ String ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ๋Š” json ์„ Python ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ฐ”๊พผ ๊ฒƒ์„ ํ™•์ธ ํ•œ ํ›„์—

   ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๊ธฐ ์šฉ์ดํ•˜๊ฒŒ ์œ„ํ•ด์„œ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„!

   (http://pythonstudy.xyz/python/article/205-JSON-%EB%8D%B0%EC%9D%B4%ED%83%80)

2. ์ธ์ฝ”๋”ฉํ•˜์—ฌ ํ•จ์ˆ˜๋‚ด์˜ json ์„ ๋Œ€์ฒดํ•œ๋‹ค.

 

 

 

Fusion Chart ์‚ฌ์šฉ ํ•˜๋ฉฐ ์ฐธ๊ณ ํ•œ ์š”์†Œ ๊ฐ’ ์„ค๋ช…

- plottooltext : ํˆดํŒ ๊ด€๋ จ

 

 

์‹ค์ œ ์ˆ˜ํ–‰ํ•œ ์ฝ”๋“œ๋Š” gitHub ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ

https://github.com/JiYoungDo/Capstone-Design

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€