Pyecharts在Django中顯示方式
更新時間:2025年08月18日 09:53:14 作者:威武的小炮
文章介紹了使用pyecharts在Django中實現(xiàn)網(wǎng)頁圖表顯示的兩種方式,重點講解通過JSON傳輸?shù)角岸瞬⒔Y(jié)合ajax異步刷新的實現(xiàn)方法,包含后端生成圖表數(shù)據(jù)和前端加載展示的步驟,強調(diào)數(shù)據(jù)真實性不重要
Pyecharts在Django中顯示
因為pyecharts是支持python的一種可視化,但是想要將其放入網(wǎng)頁中
主要有兩種方法:
- (1)在網(wǎng)頁中假如iframe,將網(wǎng)頁嵌在iframe中(該方法不具體描述)
- (2)使用json傳輸?shù)角岸耍瑢ζ溥M行展示
具體描述第2種方法如下:
假設(shè)用pyecharts畫一張折線圖
def line():
attr = ['教師', '教授', '副教授', '博導(dǎo)', '碩導(dǎo)', '國家級獎項', '省部級獎項', '院士', '榮譽學(xué)者', '專利']
v1 = [100, 20, 15, 50, 40, 200, 200, 4, 5, 100]
v2 = [150, 30, 40, 50, 30, 250, 200, 1, 2, 110]
line = Line(width=1834, height=400)
line.add('北京大學(xué)', attr, v1,
mark_point=['average', 'max', 'min'], # 標注點:平均值,最大值,最小值
mark_point_symbol='diamond', # 標注點:鉆石形狀
mark_point_textcolor='#40ff27') # 標注點:標注文本顏色
line.add('清華大學(xué)', attr, v2,
mark_point=['average', 'max', 'min'],
mark_point_symbol='arrow',
xaxis_name_size=20,
yaxis_name_size=20,
)
return line
具體的圖標如圖所示:

接下來,想要用其傳到前端,進行顯示,需要在Django的app的views.py中添加代碼。
def university_picture(request):
template = loader.get_template('search/test.html')
l = line() #生成圖像實例
context = dict(
myechart=l.render_embed(), #必須要有
host=REMOTE_HOST, #若前端加載了對應(yīng)的echarts庫,可以不需要這一句和下一句
script_list=l.get_js_dependencies(),#以上兩句代碼的目的是下載該圖標對應(yīng)的一些echarts庫
)
return HttpResponse(template.render(context, request))
后端代碼在這里就介紹完,底下需要介紹一下前端的代碼。
- 前端第一步,加載頭文件:
{% for jsfile_name in script_list %}
<script type="text/javascript" src="{{ host }}/{{ jsfile_name }}.js"></script>
{% endfor %}
- 第二步,將圖標顯示出來(注:以下代碼的class以及id,可以根據(jù)自己的網(wǎng)頁結(jié)構(gòu)進行替換,不需要相同)
<div class="row placeholders" id="pic">
{{myechart|safe}}
</div>
Pyecharts的圖表在Django中顯示的功能模塊
就介紹完了,下面展示一下,使用ajax+pyecharts+Django實現(xiàn)的異步刷新圖表(注:不要太在意數(shù)據(jù)的真實性):

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos6.5安裝python3.7.1之后無法使用pip的解決方案
今天小編就為大家分享一篇關(guān)于centos6.5安裝python3.7.1之后無法使用pip的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02

