Giter Club home page Giter Club logo

historical-ranking-data-visualization-based-on-d3.js's Introduction

该项目暂停维护

这个项目存在很多历史遗留问题,使用起来也不是非常便利。因此我开了一个新坑,旨在能够更好地制作此类数据可视化视频。

新项目地址:

anichart.js: https://github.com/Jannchie/anichart.js

个人精力有限,此项目基本上不会更新代码了。此项目的代码仍能使用,如果出现问题,也可以发邮件到[email protected],我会予以修复。


动态排名数据可视化

将历史数据排名转化为动态柱状图图表

English

GitHub issues GitHub stars GitHub forks GitHub license

这是一个数据可视化项目,基于D3.js。能够将历史数据排名转化为动态柱状图图表。

这个项目旨在降低此类视频的使用门槛与提高生产效率,使得没有编程经验的用户也能无痛制作排名可视化动画。


一句话用法

只需打开src目录下的bargraph.html。然后点击页面中间的选择文件按钮,接着选择csv格式的数据文件,便可以看到可视化的结果。

数据格式

本项目能够读取csv格式的数据。

具体的格式如下:

name type value date
名称1 类型1 值1 日期1
名称2 类型2 值2 日期2

其中“名称”会出现在柱状图的左侧作为Y轴,而“类型-名称”会作为附加信息出现在柱状图上。

类型与柱状图的颜色相关,建议命名为不包含空格或者特殊符号的中英文字符。

值与柱状图的长度绑定,必须是整数或浮点数。

日期建议使用的格式为"YYYY-MM-DD"。

配置

本项目能够进行一些简单的定制。

使用记事本或者其他文本编辑器,打开config.js的文件即可进行一些参数的修改。


更新日志

2020-03-01

  • 美化了图片的位置
  • 美化了描边

2019-04-16

  • 合并了数个分支。
  • 更新了英文版README,将颜色代码统一为HEX格式。--BY rabbitism
  • 在渐变色模式下,添加了根据类型选择渐变色板的功能。--BY MiracleXYZ
  • 添加always_up属性,用于反向排行榜,条目退出排行榜时都会上浮。--BY MiracleXYZ
  • 控制配置文件篇幅,将imgs和color_ranges移动到其他的文件中,方便进行其他属性的配置。--BY MiracleXYZ
  • 修复了图片模式下一些名字中含有特殊符号(如英文括号和引号)导致图片无法正常显示的问题。--BY MiracleXYZ

2019-03-30

  • 修复了反格式化函数的一些错误。

2019-03-20

  • 添加了反格式化函数。

2019-02-11

  • 修复了没有后缀时数据会从零开始的问题。

2019-02-10

  • 更新了默认编码和example.csv。

2019-02-09

  • 现在可以添加在图表的数值上添加后缀了。
  • 在使用动态颜色时,可以自定义颜色渐变了。

2019-01-14

  • 优化了图像选取算法,在图片极多的情况下也不会卡顿了。

2019-01-13

  • 现在柱状图颜色变化时图片边框颜色也会变化了。

2019-01-11

  • 现在柱状图可以设置为圆角矩形。
  • 现在可以添加图片Logo。
  • 现在可以调整左侧label的显示与位置。
  • 现在可以在config中调整全局背景色。

2018-12-25

  • 为了规避字体版权问题,默认采用思源黑体。

2018-11-29

  • 现在发生错误会弹出对话框,便于定位并描述错误了。

2018-11-26

  • 史诗级更新,更新了动画算法。
  • 现在可以通过选项指定匀速运动。

2018-11-18

  • 修复一些bug
  • 现在使用计数器会自动覆盖掉type标签,而不是直接报错。

2018-10-14

  • 不再使用webpack了。webpack并不适用于如此之小的项目,使用webpack感觉只会增加调试和二次开发的门槛。
  • 不再使用css来控制颜色的选择了。现在可以在config.js中进行设置。
  • 现在默认随机配色,并且可以只指定部分颜色了。
  • 添加了颜色绑定增长率的选项,开启后颜色与增长率有关。越黄越快,越蓝越慢。
  • 添加了barinfo过长时的另一种显示方法,在config.js中用long参数控制。

2018-08-04

  • 美化随机配色。
  • 修改了配置说明。
  • 美化进入退出效果。

2018-07-31

  • 修复了中途修改type不会改变类型的问题。
  • 删除了运行不正常的dividing_line,改为使用allow_up属性,该属性使得高于平均值的条目能够上浮退出。

2018-07-23

  • 添加了数据都很大时的坐标轴策略,如果所有数字都很大,导致拉不开差距则开启此项使得坐标原点变换为(最小值)*2-(最大值)。
  • 添加了当数字量级差距巨大时的坐标轴策略(开启半对数坐标)。
  • 修复了时间的排序方式。
  • 添加了reverse配置,使得使得最短的bar位于最上方。

2018-07-22

  • 修复了自定义颜色时,无法按照名称来上色的BUG。
  • 修复了自定义颜色时,名称和数值没有正确上色的BUG。

2018-07-21

  • 修复了上色机制,并且现在可以选择按照类型还是按照名称上色了。

2018-07-20

  • 现在可以关闭自动排序了。
  • 现在能选择条状图进入时是从零开始还是从当前的数值开始了。

2018-07-19

  • 现在可以在配置文件里控制每日最大的显示条目数了。
  • 现在在配置文件里配置成不显示type能够移除柱状图上的类型了。
  • 现在能够在配置文件中选择自定义颜色了。
  • 使用更加合理的随机颜色。
  • speed属性更名为interval_time。

historical-ranking-data-visualization-based-on-d3.js's People

Contributors

acqierement avatar caoyu-yiyue avatar ish-kafel avatar jannchie avatar liwink avatar meteorlxy avatar miraclexyz avatar nial4 avatar pzx521521 avatar rabbitism avatar si9ma avatar sunrisel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

historical-ranking-data-visualization-based-on-d3.js's Issues

GPL许可证问题

我看到这个项目用了GPLv3的许可证,那是不是只有同属于GPLv3的项目才能使用这个库呢(使用dist感觉也算是动态链接)?

[feature] 是否能按type或中文排序,或者关闭bar右边的label

目前的情况是:
bar上的文字是这样的格式 type - name 然后bar右边显示value,且按照value高到低排序

我的情况是 type是中文,希望安装type排序,例如
type1
type2
type2
type3
type3
我暂时的折中方案是把type改成对应的整型type1=3,type2=2,type3=1,然后和value列对换,这样虽然排序正确了,但bar右边显示label就变成了3,2,1,这不是我想要的,如果能关闭这个label也可以接受

how to find choose.file button

打开dist/bargraph 后没有能够在页面上找到choose.file button, 请问这个button大概在什么位置。 谢谢

max_number过大时,bar上文字超出bar的宽度

当我把max_number设置的比较大,例如40的时候,同时也有将近40条数据显示在一页
左侧的name和bar的宽度或自动缩小,但是bar上显示的文字的宽度不会跟着缩小,就超出了bar的宽度
请问这有办法调整么?

只有一个显示标签

请问图表右边有关类型的那一列无法显示该怎么解决呢,只有中间有个可以随着时间一起变得,右边魔法师那一列没有,求救

调整字号

在stylesheet中找到了字体,但是调整后无效。小白毫无编程经验,也根据大神的留言尝试过,很是困难,前来求助,感谢!

关于使用平台的问题

我在win10的chrome上能使用,在win7的chrome和unbuntu18.04的chromium上不能使用,是不是这个只能在win10上使用

能否加入一个升序排列的配置

当排序数据是时间,比如100m记录之类的,需要的是按照时间进行升序排列
比如

  1. 9.89
  2. 9.90
    ...
    10.9.98
    main.js压缩过,没有找到在哪里做的排序

Mac上调整字体

估计是要加入CSS文件。。。直接改动参数目前没法显示对应的字体。。。

日期排序

为什么日期排序
使用 date.sort();
而不使用 date.sort((x,y)=>new Date(x)-new Date(y));
前者排序如日期 YYYY-M-D 会出现排序不正常。

[feature] 是否可以在读取csv的时候将name都读取

场景如下:现在有n个类目,部分在一开始的时候为0的话就会在后面有值的时候才出现,我的图需要在一开始的时候显示所有类目。
功能建议:增加一个配置,将所有的name读取进来,如果为0也显示出来。

增强config.js

能否在config.js内添加更强大的自定义功能?

例如控制数据条宽度、数据条左侧文字大小、数据条右侧文字大小、数据条内部文字大小、数据条与数据条之间上下间隔大小等功能,这些功能在数据条目少,或者一屏多个并行动态排名下会非常有用

虽然我可以通过修改stylesheet.css和visual.js实现上述功能,但是我觉得其他人也可能会有这样的需求

config.js缺少use_type_info属性

1、建议在config.js最后面加上这个属性:
use_type_info//是否在barinfo里展示type类型

2、然后在visual.js里原80行,应该改为
if (Object.keys(config.use_type_info)) {
……}

如果是if (config.use_type_info) {},则在config.js里将use_type_info赋值为false的时候,此判断认为假。我看高手你的意思是判断use_type_info是否在config里存在,则用Object.keys(config.use_type_info)更为合适

无法在柱状条显示名字了

原本在柱状条左侧(Y轴)和柱状条最右侧能显示name,更新了3天前版本(11月18日),现在显示不出来了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.