最初源码:

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优雅地添加数据相关推荐

  1. 如何优雅地添加MGR节点?

    MySQL Group Replication(简称MGR)是MySQL官方于2016年12月份推出的一个全新的高可用与高扩展的解决方案.MGR提供了高可用.高扩展.高可靠的MySQL集群服务,是My ...

  2. jsp ajax动态添加数据,jquery Ajax实现Select动态添加数据

    jquery Ajax实现Select动态添加数据,具体内容如下 1.背景 最近在工作中,遇到了一个关于select的问题.一般情况下,select下拉框中的数据都是固定的或者直接在jsp中读取列表值 ...

  3. Statement接口实现查询数据、添加数据

    本文介绍了Statement接口实现查询数据.添加数据.在JDBC的基本应用中,介绍了使用Statement接口查询和添加数据的步骤.重点在于使用getConnection()方法来连接数据库,创建S ...

  4. 添加数据功能java,SpringBoot+Vue实现数据添加功能

    一.添加代码生成器 用来自动为数据库映射类建立:mapper.service.controller package com.hanmh.utils; import com.baomidou.mybat ...

  5. 12c adg添加数据文件报错处理ORA-01111

    一.描述 12c ADG rhel 7.0 二.现象.处理过程 1.主库添加数据文件,备库报错. Beginning Standby Crash Recovery. Serial Media Reco ...

  6. [Asp.net MVC]Asp.net MVC5系列——添加数据

    目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列 ...

  7. seaborn使用violinplot函数可视化小提琴图、并在violinplot函数中设置inner参数来添加数据点显示数据的稠密程度

    seaborn使用violinplot函数可视化小提琴图.并在violinplot函数中设置inner参数来添加数据点显示数据的稠密程度(Seaborn violinplot with data po ...

  8. R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签

    R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签 目录 R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签

  9. R语言ggplot2可视化:箱图(box plot)可视化并且在为箱图的异常值(outlier)添加数据标签

    R语言ggplot2可视化:箱图(box plot)可视化并且在为箱图的异常值(outlier)添加数据标签 目录

最新文章

  1. Linux那些事儿 之 戏说USB(11)繁华落尽
  2. 网络系统传输负载测试
  3. GraphicsMagick 1.3.25 Linux安装部署
  4. NetBeans 7.4的本机Java打包
  5. 面向数据科学家的实用统计学_数据科学家必知的统计数据
  6. 从 0 到 300,Instagram 创始人 CTO 分享工程团队成长的经验
  7. 安卓手机老是自动保存图片_一张GIF图片就可以黑掉你的安卓手机?安装这款APP的你需要注意...
  8. android游戏源码 2048,Android实现2048小游戏
  9. nodejs+vue+elementui宠物医院管理系统php-java-python
  10. 网站文章内容发现重复率过高的解决办法
  11. 计算机网络中的NET与应用中的.NET
  12. RSA分段加密分段解密以及密钥与.Net的转化
  13. 【目标流畅阅读文献_语法篇】1.3简单句_动词时态
  14. ANSYS Electronics Suite 2021 R2
  15. Linux入门到精通
  16. Java虚拟机讲解 与 搞垮Java虚拟机
  17. c# HttpClient 获取cookie
  18. 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了1个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天想再吃时,就只剩一个
  19. 【Linux、进程隐藏】在Linux环境下添加系统调用实现进程隐藏
  20. 机械臂沿末端xyz轴移动及旋转(python)

热门文章

  1. 时钟偏差、延迟、不确定度、抖动 (skew,latency,uncertainty,jitter)
  2. 打车APP为何贴钱做生意?
  3. 移动端电影院:享受触手可及的幸福
  4. 建oracle簇表,详解ORACLE簇表、堆表、IOT表、分区表
  5. 大爆料!!!阿里巴巴35K月薪软件测试面试流程
  6. 如何发挥公证在知识产权保护中的作用
  7. “Unable to create the directory [XXX] to use as the base directory”的解决办法
  8. MyBatis 入门学习3
  9. 利用FPGA仿真软件modelsim仿真波形显示图片
  10. Tief Meer alt singen nennen Papa.Magnam natus consequuntur corporis laudantium.