e媒网络

一切皆可能 e媒网络 http://www.eMay.net

博客园 首页 新随笔 联系 订阅 管理

柱状图参考代码:

from flask import Flask, render_template,Response,request
import io
import random
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import requests
import json
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np

app = Flask(__name__)
 
@app.route('/')
@app.route('/ClassChart',methods=['get'])
def Index():
    chartType= request.args.get('chartType')
    algorithm= request.args.get('algorithm')
    classNo= request.args.get('classNo')
    className= request.args.get('className')
    return render_template('Index.html',chartType=chartType,algorithm=algorithm,classNo=classNo,className,className)
 
def getHtmlText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding='utf-8'
        return r.text
    except:
        return

@app.route('/bar.png')
def plot_png():
    fig = create_figure()
    output = io.BytesIO()
    FigureCanvas(fig).print_png(output)
    return Response(output.getvalue(), mimetype='image/png')
 
def create_figure():
    fig = Figure()
    axis = fig.add_subplot(1, 1, 1)
    url='http://www.dshow.net:8801/api/rankdshow/10'
    html=getHtmlText(url)
    listRank=list()
    listDictRank=json.loads(html)
    listName=list()
    listResult=list()
    for item in listDictRank:
        listName.append(item["PlayerSID"])
        listResult.append(item["ResultResult"])
    # xs=["zz","bb","cc"]
    # # ys = [random.randint(1, 50) for x in xs]
    # ys=[11,8,44]
    axis.bar(listName, listResult)
    return fig
 
if __name__ == '__main__':
   app.run(debug = True)

 

Index.html代码<待写,未完>:

<h2>柱状图</h2>
    <div align="center" style="width:1000px;height:500px;border:0px solid #F00">
    <p>
       <img src="/bar.png" alt="my plot">
    </p> 
    </div>

 直方图参考代码:

from flask import Flask, render_template,Response,request
import io
import random
import matplotlib.pyplot as plt
from matplotlib import font_manager
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import requests
import json
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np


app = Flask(__name__)
 
@app.route('/')
@app.route('/ClassChart',methods=['get'])
def Index():
    # chartType= request.args.get('chartType')
    # algorithm= request.args.get('algorithm')
    # classNo= request.args.get('classNo')
    # className= request.args.get('className')
    return render_template('Normal.html')
 
def getHtmlText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding='utf-8'
        return r.text
    except:
        return

def normfun(x, mu, sigma):
    pdf = np.exp(-((x - mu)**2)/(2*sigma**2)) / (sigma * np.sqrt(2*np.pi))
    return pdf

@app.route('/nor.png')
def plot_png():
    fig = create_figure()
    output = io.BytesIO()
    FigureCanvas(fig).print_png(output)
    return Response(output.getvalue(), mimetype='image/png')
 
def create_figure():
    fig = Figure()
    axis = fig.add_subplot(1, 1, 1)
    url='http://www.dshow.net:8801/api/rankdshow/10'
    html=getHtmlText(url)
    listRank=list()
    listDictRank=json.loads(html)
    listName=list()
    stuScore=list()
    for item in listDictRank:
        listName.append(item["PlayerSID"])
        stuScore.append(float(item["ResultResult"]))

    myfont = font_manager.FontProperties(fname = r"C:\\Windows\\Fonts\\simsun.ttc")
    


    x = np.arange(min(stuScore), max(stuScore), 2)

    print(np.mean(stuScore),np.std(stuScore))
    y = normfun(x, np.mean(stuScore), np.std(stuScore))
    axis.plot(x, y)  # 这里画出理论的正态分布概率曲线

    axis.hist(stuScore,bins=10,rwidth=0.8, density=True)  # bins个柱状图,宽度是rwidth(0~1),=1没有缝隙
    axis.set_title("子标题",fontproperties=myfont,fontsize=14)
    axis.set_xlabel("分数",fontproperties=myfont,fontsize=14)
    axis.set_ylabel("概率",fontproperties=myfont,fontsize=14)
    fig.suptitle('直方图',fontproperties=myfont,fontsize=14)


    return fig
 
if __name__ == '__main__':
   app.run(debug = True)

 

posted on 2022-03-25 14:17  e媒网络技术团队  阅读(98)  评论(0编辑  收藏  举报