pygal.Line()基本单线型
pygal.StackedLine(fill=True)相同的图形但具有堆叠值和填充渲染
view.x_labels=map(str,range(1,34))设置x轴取值范围
1、单系列
import pygal
frequency = [10, 20, 30, 40, 50, 60]
bar = pygal.Bar() # 创建一个直方图的实例化对象
bar.title = 'test' # 设置标题
bar.x_labels = ['1', '2', '3', '4', '5', '6'] //x轴的值
bar.x_title = "Result" //设置x轴名称
bar.y_title = "Frequency of Result"
bar.add('D', frequency)
bar.render_to_file('bar_chart.svg') # 将图像保存为SVG文件,可通过浏览器查看
结果:
image.png
2、制作多系列图标
import pygal
view=pygal.Bar()
view.add('orange',[0,1,3,4,6,7,8,9,11,22])
view.add('banana',[1,2,3,4,4,5,6,6,7,16,17])
view.render_in_browser() //渲染到浏览器
image.png
3、堆叠图表StackedBar
import pygal
bar_chart = pygal.StackedBar()
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
bar_chart.add('Padovan', [1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12])
bar_chart.render_to_file("StackedBar.svg")
image.png
4、双色球红色球的出现概率
import requests
import pygal
import json
class UniomLotto(object):
def __init__(self):
self.url='http://www.cwl.gov.cn/cwl_admin/kjxx/findDrawNotice?' \
'name=ssq&issueCount=30'
self.headers={
'Referer':'http://www.cwl.gov.cn/kjxx/ssq/kjgg/',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/'
'537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36'
}
#1.发送数据
def send_request(self,url):
return requests.get(url=url,headers=self.headers)
#2.筛选数据
def filtrate(self,ball_data):
red=[]
data_dict=json.loads(ball_data)
# print(type(data_dict)) #dict
data_list=data_dict['result'] #双色球号码在此key的value中
# print(data_list)
for i in data_list: #遍历,取出红色球到列表red中
red.append(i['red'])
return red
#3.可视化
def visual(self,red):
# print(red) #里面的数据为str,没办法操作,所以要转换成int
red_list=[]
count={}
for red in red:
a=red.split(',')
for i in a:
# print(i)
red_list.append(int(i))
# print(red_list) #已经全部转换成int类型
for j in red_list:
count[j]=red_list.count(j) #统计每个号码出现的次数
print(count[1],count[2],count[33])
view=pygal.Bar()
view.x='num'
view.x_labels=map(str,range(1,34))
view.add('red',count.values())
# view.render_in_browser() #渲染到浏览器
view.render_to_file('shuangseqiu.svg') #以svg文件的形式保存,可以用浏览器打开
#4.主要的运行方法
def run(self):
response=self.send_request(self.url)
red=self.filtrate(response.content.decode())
self.visual(red)
if __name__ == '__main__':
unionlotto=UniomLotto()
unionlotto.run()
image.png
PS:觉得这篇文章有用的朋友,多多点赞打赏哦~!












网友评论