Pycharsは複数のデータをプロットします

Pycharsは複数のデータをプロットします

#!usr/bin/envpython
# -*-coding:utf-8_*-

import pandas as pd
from pyecharts.charts import Bar, Pie, Line
# 设置
from pyecharts import options as opts
from pyecharts.render import make_snapshot
# 选主题
from pyecharts.globals import ThemeType
# 使用snapshot-selenium 渲染图片
from snapshot_selenium import snapshot
from sqlalchemy import create_engine
from pyecharts import options as opts


# todo 从mysql获取数据
# db_info = {'user': 'xxxx',
#            'password': 'xxxx',
#            'host': 'localhost',
#            'port': 3306,
#            'database': 'amazon'
#            }
# engine = create_engine('mysql+pymysql://%(user)s:%(password)s@%(host)s:%(port)d/%(database)s?charset=utf8' % db_info,
#                        encoding='utf-8')
# sql = "select * from mon order by rank;"
#
# df1 = pd.read_sql_query(sql, engine)

# 面向对象
class draw_bar():
    # 初始化Line对象
    def __init__(self):
        #读取数据data_frame
        self.df = pd.read_excel(r"./word.xlsx").set_index('word')
        # 实例化Line
        self.Line = Line()
        # 将column作为x轴
        x = (self.df.columns.tolist())
        x.reverse()
        # print(x)
        # 添加x轴
        self.Line.add_xaxis(x)
    # 读取需要查询的词
    def get_words(self):
        # 读取需要查询的词为列表
        with open("./待查询.txt", 'r', encoding='utf-8') as f:
            words = f.readlines()
        return words
    # 制图
    def draw(self, words):
        # 循环列表,制作每一条数据
        for word in words:
            y = (self.df.loc[word.strip()].astype('int64').tolist())
            y.reverse()
            # 添加数据
            self.Line.add_yaxis(word, y)

        self.Line.set_global_opts(
            title_opts=opts.TitleOpts(title="主标题: Amazon数据热度", subtitle="关键词排名"))
        self.Line.set_series_opts(label_opts=opts.LabelOpts(position='right', font_size=5)),
        # 保存结果
        make_snapshot(snapshot, self.Line.render(path=r"./动态/关键词.html"), "./动态/Line.png")
        # self.Line.render(path=r"./动态/关键词.html")

    def run(self):
        words = self.get_words()
        self.draw(words)


if __name__ == '__main__':
    d = draw_bar()
    d.run()

おすすめ

転載: blog.csdn.net/weixin_44429965/article/details/111932107