AntV F2 数据可视化填坑,图表横向滚动
柱状图横向滚动
思路
通过 Interaction
实现平移,通过 ScrollBar
显示滚动条
1.Interaction
F2 提供一套交互机制,以达到通用交互行为的封装和复用。基于此机制,我们提供了以下五种通用的交互行为:
- 饼图选中
- 柱状图选中
- 图表平移 pan
- 图表缩放
- 图表 swipe 快扫
2.ScrollBar
Scroll bar
是一个静态插件,主要用于辅助 pan
和 pinch
交互。 滚动条只是为 pan 服务的。
数据结构
数据结构:
[
{
provinceShortName: "北京",
index: 0,
confirmedCount: 168
},
//...
]
引入 F2
import F2 from "@antv/f2/lib/index";
不成功
- 下面是不成功的例子,如果你不是吃瓜群众,可以直接通过文章目录跳转到 成功
- 为什么要放出来,因为我搞得是柱状图,看官方文档柱状图的例子搞的没搞出来。
- 可以横向滚动了,但是当横坐标只显示刚开始定义的
originProvinces
, 想着动态改变originProvinces
,鼓捣半天发现不知道在什么地方触发。如果您知道原因,欢迎指教!
// 通过横坐标定义初始显示的数据,剩余的数据通过滑动显示(好像是不对的)
const originProvinces = ["浙江","广东","台湾","江苏","内蒙古","云南"];
const chart = new F2.Chart({
id: "province-trend",
// plugins: [ScrollBar], 通过 import 引入不需要在这里注册了
pixelRatio: window.devicePixelRatio
});
chart.source(data, {
provinceShortName: {
type: "cat", // 数值类型
tickCount: 5,
values: originProvinces // 对应上面
},
confirmedCount: {
tickCount: 5
}
});
chart
.interval()
.position("provinceShortName*confirmedCount")
.color("provinceShortName");
chart.tooltip({
showItemMarker: true,
background: {
radius: 2,
padding: [3, 5]
},
onShow(ev) {
const items = ev.items;
items[0].name = items[0].title;
items[0].value = items[0].value + " 人";
}
});
chart.interaction("pan");
chart.scrollBar({
xStyle: {
backgroundColor: "#e8e8e8",
fillerColor: "#808080",
offsetY: -2
}
});
chart.render();
成功
官方还给了另一个个横向滚动的 例子,不过是折线图的,只能硬着头皮上了,仿照官方折线图滚动的例子改成如下:
const chart = new F2.Chart({
id: "province-trend",
pixelRatio: window.devicePixelRatio
});
chart.source(data, {
index: { // 这里横坐标使用 index,
min: 0, // 设置刚开始显示的区间 0-5
max: 5
}
});
chart.tooltip({
showCrosshairs: false,
showItemMarker: false,
background: {
radius: 2,
fill: "#1890FF",
padding: [3, 5]
},
nameStyle: {
fill: "#fff"
},
onShow(ev) {
const items = ev.items;
items[0].name = items[0].title;
}
});
// 这里横坐标应该显示的是 provinceShortName,
// 但是用这种方法必须使用 index 了
// 后面在将横坐标使用类似于起别名的方式改成 provinceShortName
chart.interval().position("index*confirmedCount");
chart
.point()
.position("index*confirmedCount")
.style({
lineWidth: 1,
stroke: "#fff"
});
chart.axis("index", {
label(text) {
return {
fontSize: 14,
// 在这里将横坐标显示为 provinceShortName
text: data[text].provinceShortName
};
}
});
chart.interaction("pan");
chart.scrollBar({
mode: "x",
xStyle: {
offsetY: -5
}
});
chart.render();
大功告成了,这里只放了关键代码,其他细节再优化。 仅仅实现图表滚动,是不是稍微有点麻烦 ?
AntV F2 数据可视化填坑,图表横向滚动的更多相关文章
- Echarts数据可视化,easyshu图表集成。
介绍: ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Sa ...
- 移动端可视化框架antv f2出现两个legend选项
前天遇到个坑,把我给坑死了 ,在帮朋友做一个微信公众号的项目,使用的vue全家桶,有个模块需要用到数据可视化展现,之前做项目的时候用过antv,比较熟悉,因为是移动端的项目,所以用的是antv f2这 ...
- 使用bokeh-scala进行数据可视化(2)
目录 前言 几种高级可视化图表 总结 一.前言 之前已经简单介绍过一次如何使用Bokeh-scala进行数据可视化(见使用bokeh-scala进行数据可视化),以及如何在Geotrel ...
- WebApi传参总动员(填坑)
本以为系列文章已经Over,突然记起来前面留了个大坑还没填,真是自己给自己挖坑. 这个坑就是: (body 只能被读取一次)Only one thing can read the body MVC和W ...
- PoPo数据可视化周刊第5期
PoPo数据可视化 聚焦于Web数据可视化与可视化交互领域,发现可视化领域有意思的内容.不想错过可视化领域的精彩内容, 就快快关注我们吧 :) World Wire 数据可视化演示(视频) IBM公司 ...
- AntV F2+vue-cli构建移动端可视化视图
AntV F2是蚂蚁金服旗下的一个专注于移动,开箱即用的可视化解决方案,完美支持 H5 环境同时兼容多种环境(Node, 小程序,Weex), 完备的图形语法理论,满足你的各种可视化需求,专业的移动设 ...
- AntV 数据可视化解决方案发布
今天蚂蚁金服发布了一套数据可视化规范AntV. AntV 是一套专业的数据可视化规范,这套规范的目的是为了让可视化的使用者更懂数据可视化.这套规范是蚂蚁金服在可视化建设过程中的理论沉淀,它可以很好得指 ...
- Python图表数据可视化Seaborn:3. 线性关系数据| 时间线图表| 热图
1. 线性关系数据可视化 lmplot( ) import numpy as np import pandas as pd import matplotlib.pyplot as plt import ...
- Python图表数据可视化Seaborn:2. 分类数据可视化-分类散点图|分布图(箱型图|小提琴图|LV图表)|统计图(柱状图|折线图)
1. 分类数据可视化 - 分类散点图 stripplot( ) / swarmplot( ) sns.stripplot(x="day",y="total_bill&qu ...
随机推荐
- 魅族--魅蓝metal
评论:金属潮流平民化
- hadoop常用端口及定义方法
hadoop2.x常用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper: 组件 节点 默认端口 配置 用途说明HDFS DataNode 50010 dfs.datano ...
- java环境所遇问题
在javac能运行通过并且生成了.class文件但是java文件在运行时通不过出现上面图片情况,试了一上午发现我的和别人好像不一样,下面展示我的情况, 之前用户变量那里新建了一个classpath,不 ...
- eclipse中如何配置jdk
1.在eclipse的上方打开Windows这个选项,选择Preferences==>Java==>Installed JREs 2.然后选择Add==>Standard VM==& ...
- Java提供的JDBC标准- 六大步骤
JDBC 1.//加载驱动 class.forname 2.//创建连接connection 3.//创建 管道流 statement或 preparestatement预处理4.//执行sql语句 ...
- 【题解】P5446 [THUPC2018]绿绿和串串(manacher)
[题解]P5446 [THUPC2018]绿绿和串串(manacher) 考虑对于一个串进行\(f\)操作,就是让他变成一个以最后一个节点为回文中心的回文串. 那么对于某个位置\(p\),假如它是一个 ...
- $Noip2014/Luogu1351$ 联合权值 树形
$Luogu$ $Description$ 给定一棵树,每两个距离为$2$的点之间可以产生"联合权值","联合权值"定义为这两个数的乘积.求最大的联合权值以及所 ...
- idea2020注册码永久激活(激活到2100年)
首先有图有真相: 资源链接: 链接:https://pan.baidu.com/s/1DPIllnyhc7H4qL2yQb0OvQ 提取码:lbjx 第一步:将bin目录下的三个文件拷贝到IDEA安装 ...
- Jmeter-Ant 生成测试报告配置步骤
1.配置java环境变量(不会的可以自行百度) 2.安装jmeter 3.安装ant,配置ant环境变量 4.将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制 ...
- Pillow库来着
第一步肯定是安装啦 pip install pillow 如果安装报错,可以升级一下pip库,因为有可能是pip版本低了......... pip show pip 升级用 python -m pip ...