Python学习版本: Python 3.X

观看:Python入门+Python爬虫+Python数据分析

python怎么用背景图填满画布 python画图设置背景图片_词云

2 Echarts配置

官方文档:
https://www.echartsjs.com/zh/index.htmlhttps://echarts.apache.org/zh/index.html

echarts下载https://echarts.apache.org/zh/download.html

完整的示例:

from flask import Flask,render_template,request
import sqlite3
app = Flask(__name__)

@app.route('/score')
def score():
    score = []#评分
    num = []#每个评分所所统计的电影数
    conn = sqlite3.connect("movie.db")
    c = conn.cursor()
    sql = "select score,count(score) from movie250 group by score"
    data = c.execute(sql)#([score,num],[score,num])
    for item in data:
        score.append(str(item[0]))#变为字符串
        num.append(item[1])
    conn.commit()
    conn.close()
    return render_template("score.html",score = score,num=num)
if __name__ == '__main__':
 app.run()
<!--创建div 容器,放echarts-->
<div id="main" style="width: 100%;height:400px;"></div>
   <script type="text/javascript">
     // 基于准备好的dom,初始化echarts实例
     var myChart = echarts.init(document.getElementById('main'));
     // 指定图表的配置项和数据
     var option = {
       title: {
         text: '电影评分'
       },
       tooltip: {},
       legend: {
         data: ['数量']
       },
       xAxis: {
       <!--jinja2自带的格式转化 将字符串转化为格式json-->
         data:{{ score|tojson }}
       },
       yAxis: {},
       series: [
         {
           name: '数量',
           type: 'bar',
           data:{{ num }}
         }
       ]
     };
     // 使用刚指定的配置项和数据显示图表。
     myChart.setOption(option);
   </script>

3.WordCloud应用

3.1 WordCloud示例

3.1.1 WordCloud库的安装
安装的包
jieba
matplotlib
wordcloud

python怎么用背景图填满画布 python画图设置背景图片_爬虫_02

若安装不成功,可以

第一步:http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 页面下载所需的wordcloud模块的whl文件,这里选择wordcloud-1.6.0-cp37-cp37m-win32.whl 版本。

注意:下载的版本!!

cp后面是你的python版本,例如:3.7.1就是cp37

查看python的版本号,可以在命令提示符界面下输入:python

python怎么用背景图填满画布 python画图设置背景图片_echarts_03


第二步:下载后进入存储该文件的路径,cmd打开dos界面,cd进你们刚刚下载到的文件路径

第三步:执行“pip install wordcloud-1.6.0-cp37-cp37m-win32.whl”,安装成功。

3.1.2 WordCount的例子

第一步:引入库文件

import jieba 							#分词
from matplotlib import pyplot as plt 	#绘图,直接生成图片
from wordcloud import WordCloud 		#词云
from PIL import Image				 	#图片处理
import numpy as np 						#矩阵运算
import sqlite3 							#sqlite3数据库

第二步:读取文件,或者读取数据库

path = r'.' #设定根路径
#font = r'C:\Windows\Fonts\msyh.ttc' #设定字体
#text = (open(path + r'\岗位需求.txt', 'r', encoding='utf-8')).read() #读取文件
con = sqlite3.connect('D:\\demo\\python3_workspace\\baidu_demo\\movie.db') #连接数据库
cur = con.cursor()
sql = 'select introduction from movie250'
data = cur.execute(sql)
text = ""
for item in data: #将查询出的结果连接成一个字符串
text = text + item[0]
print(text)
cur.close()
con.close()

第三步:应用特定图片合成词云

#使用jieba 将字符串分词
cut = jieba.cut(text) # 分词
string = ' '.join(cut)
print(len(string)) #打印分词数量

#设置源图片属性
img=Image.open(r'.\static\assets\img\tree.jpg') #打开图片
img_array = np.array(img)#将图片转化为数组
wc=WordCloud(
    background_color='white',		# 设置背景颜色,后面对颜色处理时,除了背景颜色 ,处理其他颜色
    mask=img_array,					# 设置背景图片
    font_path='simfang.ttf' #'C:\Windows\Fonts\STZHONGS.TTF', # 若是有中文的
)	
#将目标分词 添加到源图片中非背景颜色的区域
wc.generate_from_text(strcut)

#绘制图片
fig =plt.figure(1)
plt.imshow(wc)#显示图片
plt.axis('off')#是否显示坐标轴
#plt.show()#图片显示
#输出词云图片到文件
plt.savefig(r'.\static\assets\img\word.jpg',dpi=500)#dpi清晰度

3.2 WordCloud配置

font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path= ‘黑体.ttf’
width : int (default=400) #输出的画布宽度,默认为400像素
height : int (default=200) #输出的画布高度,默认为200像素
prefer_horizontal : float (default=0.90) #词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )
mask : nd-array or None (default=None) #如果参数为空,则使用二维遮罩绘制词云。如果
mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。除全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。如:bg_pic = imread(‘读取一张图片.png’),背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要显示的形状复制到一个纯白色的画布上再保存,就ok了。
scale : float (default=1) #按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍min_font_size : int (default=4) #显示的最小的字体大小
font_step : int (default=1) #字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差
max_words : number (default=200) #要显示的词的最大个数
stopwords : set of strings or None #设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS
background_color : color value (default=”black”) #背景颜色,如background_color=‘white’,背景颜色为白色
max_font_size : int or None (default=None) #显示的最大的字体大小
mode : string (default=”RGB”) #当参数为“RGBA”并且background_color不为空时,背景为透明
relative_scaling : float (default=.5) #词频和字体大小的关联性
color_func : callable, default=None #生成新颜色的函数,如果为空,则使用 self.color_func
regexp : string or None (optional) #使用正则表达式分隔输入的文本
collocations : bool, default=True #是否包括两个词的搭配
colormap : string or matplotlib colormap, default=”viridis” #给每个单词随机分配颜色,若指定
color_func,则忽略该方法
random_state : int or None #为每个单词返回一个PIL颜色
fig = plt.figure(1) #新建一个名叫 Figure1的画图窗口
plt.imshow(wc) #显示图片,同时也显示其格式
plt.axis(‘off’) # 是否显示x轴、y轴下标
#plt.show() #显示生成合成图片
plt.savefig(path+‘\new.png’,dpi=500) #保存合成图片,dpi是设定分辨率,默认为400