pygal优雅地添加数据
最初源码:
import pygalview = pygal.Bar(print_values=True)
# 图表名
view.title = '粉丝时间段变化'
# 添加数据
view.x_title = '时间点(1指00:00-01:00)'
view.x_labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
view.add('粉丝增长变化', [7, 7, 6, 1, -2, 2, 1, -2, 10, 7, 1, -45, -12, -8, -11, 11, -5, 14, 4, 18, 121, 68, 36, -1])
view.render_to_file('fs.svg')
运行结果:
遇到的问题
pygal文档里添加数据大多都是直接用数字添加,遇到大量数据或者像上面每日需要更改的数据就很麻烦
解决方法
继续查看pygal文档发现连续的数字数据可以用map(str,range(x,y))代替,于是将代码变成了
view.x_labels = map(str,range(1,25))
但是粉丝增长变化每天都不同,该如何优雅地将其可视化呢?粉丝增长变化原本是爬虫爬出来的列表,问题变成怎么将列表里的int用map传进去,笨方法是像下面这样不用map一个一个传
cy=[7, 7, 6, 1, -2, 2, 1, -2, 10, 7, 1, -45, -12, -8, -11, 11, -5, 14, 4, 18, 121, 68, 36, -1]
view.add('增长变化', [cy[0], cy[1], cy[2], cy[3], cy[4], cy[5], cy[6], cy[7], cy[8], cy[9],cy[10], cy[11], cy[12], cy[13], cy[14], cy[15], cy[16], cy[17], cy[18],cy[19], cy[20], cy[21], cy[22], cy[23]
])
可这也太繁杂了,比之前直接添加数字还要麻烦,于是参考上面map的用法,将range换成列表试试
view.add('粉丝增长变化', map(int,cy))
然后你就会发现生成的svg图变成了大大的No data
最终方案
试着打印map结果发现打印的是<map object at 0x000002400040A130>,查阅资料后发现要在map前加个list才能打印出结果,于是代码变成了
import pygalcy=[7, 7, 6, 1, -2, 2, 1, -2, 10, 7, 1, -45, -12, -8, -11, 11, -5, 14, 4, 18, 121, 68, 36, -1]
view = pygal.Bar(print_values=True)
# 图表名
view.title = '粉丝时间段变化'
# 添加数据
view.x_title = '时间点(1指00:00-01:00)'
view.x_labels = map(str,range(1,25))
view.add('粉丝增长变化', list(map(int, cy)))
view.render_to_file('fs.svg')
运行后的svg图也和一开始的一模一样
大功告成
pygal优雅地添加数据相关推荐
- 如何优雅地添加MGR节点?
MySQL Group Replication(简称MGR)是MySQL官方于2016年12月份推出的一个全新的高可用与高扩展的解决方案.MGR提供了高可用.高扩展.高可靠的MySQL集群服务,是My ...
- jsp ajax动态添加数据,jquery Ajax实现Select动态添加数据
jquery Ajax实现Select动态添加数据,具体内容如下 1.背景 最近在工作中,遇到了一个关于select的问题.一般情况下,select下拉框中的数据都是固定的或者直接在jsp中读取列表值 ...
- Statement接口实现查询数据、添加数据
本文介绍了Statement接口实现查询数据.添加数据.在JDBC的基本应用中,介绍了使用Statement接口查询和添加数据的步骤.重点在于使用getConnection()方法来连接数据库,创建S ...
- 添加数据功能java,SpringBoot+Vue实现数据添加功能
一.添加代码生成器 用来自动为数据库映射类建立:mapper.service.controller package com.hanmh.utils; import com.baomidou.mybat ...
- 12c adg添加数据文件报错处理ORA-01111
一.描述 12c ADG rhel 7.0 二.现象.处理过程 1.主库添加数据文件,备库报错. Beginning Standby Crash Recovery. Serial Media Reco ...
- [Asp.net MVC]Asp.net MVC5系列——添加数据
目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列 ...
- seaborn使用violinplot函数可视化小提琴图、并在violinplot函数中设置inner参数来添加数据点显示数据的稠密程度
seaborn使用violinplot函数可视化小提琴图.并在violinplot函数中设置inner参数来添加数据点显示数据的稠密程度(Seaborn violinplot with data po ...
- R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签
R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签 目录 R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签
- R语言ggplot2可视化:箱图(box plot)可视化并且在为箱图的异常值(outlier)添加数据标签
R语言ggplot2可视化:箱图(box plot)可视化并且在为箱图的异常值(outlier)添加数据标签 目录
最新文章
- Linux那些事儿 之 戏说USB(11)繁华落尽
- 网络系统传输负载测试
- GraphicsMagick 1.3.25 Linux安装部署
- NetBeans 7.4的本机Java打包
- 面向数据科学家的实用统计学_数据科学家必知的统计数据
- 从 0 到 300,Instagram 创始人 CTO 分享工程团队成长的经验
- 安卓手机老是自动保存图片_一张GIF图片就可以黑掉你的安卓手机?安装这款APP的你需要注意...
- android游戏源码 2048,Android实现2048小游戏
- nodejs+vue+elementui宠物医院管理系统php-java-python
- 网站文章内容发现重复率过高的解决办法
- 计算机网络中的NET与应用中的.NET
- RSA分段加密分段解密以及密钥与.Net的转化
- 【目标流畅阅读文献_语法篇】1.3简单句_动词时态
- ANSYS Electronics Suite 2021 R2
- Linux入门到精通
- Java虚拟机讲解 与 搞垮Java虚拟机
- c# HttpClient 获取cookie
- 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了1个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天想再吃时,就只剩一个
- 【Linux、进程隐藏】在Linux环境下添加系统调用实现进程隐藏
- 机械臂沿末端xyz轴移动及旋转(python)
热门文章
- 时钟偏差、延迟、不确定度、抖动 (skew,latency,uncertainty,jitter)
- 打车APP为何贴钱做生意?
- 移动端电影院:享受触手可及的幸福
- 建oracle簇表,详解ORACLE簇表、堆表、IOT表、分区表
- 大爆料!!!阿里巴巴35K月薪软件测试面试流程
- 如何发挥公证在知识产权保护中的作用
- “Unable to create the directory [XXX] to use as the base directory”的解决办法
- MyBatis 入门学习3
- 利用FPGA仿真软件modelsim仿真波形显示图片
- Tief Meer alt singen nennen Papa.Magnam natus consequuntur corporis laudantium.