VChart
HTML:
XML/HTML Code复制内容到剪贴板
- <v-chart :padding="[30, 'auto']" :height="200" prevent-render @on-render="renderInteractionChart"></v-chart>
JavaScript Code复制内容到剪贴板
- // 渲染柱状图
- renderInteractionChart({ chart }) {
- var data = [
- {
- name: "London",
- 月份: "Jan.",
- 月均降雨量: 18.9
- },
- {
- name: "London",
- 月份: "Feb.",
- 月均降雨量: 28.8
- },
- {
- name: "London",
- 月份: "Mar.",
- 月均降雨量: 39.3
- },
- {
- name: "London",
- 月份: "Apr.",
- 月均降雨量: 81.4
- },
- {
- name: "London",
- 月份: "May.",
- 月均降雨量: 47
- },
- {
- name: "London",
- 月份: "Jun.",
- 月均降雨量: 20.3
- },
- {
- name: "London",
- 月份: "Jul.",
- 月均降雨量: 24
- },
- {
- name: "London",
- 月份: "Aug.",
- 月均降雨量: 35.6
- },
- {
- name: "Berlin",
- 月份: "Jan.",
- 月均降雨量: 12.4
- },
- {
- name: "Berlin",
- 月份: "Feb.",
- 月均降雨量: 23.2
- },
- {
- name: "Berlin",
- 月份: "Mar.",
- 月均降雨量: 34.5
- },
- {
- name: "Berlin",
- 月份: "Apr.",
- 月均降雨量: 99.7
- },
- {
- name: "Berlin",
- 月份: "May.",
- 月均降雨量: 52.6
- },
- {
- name: "Berlin",
- 月份: "Jun.",
- 月均降雨量: 35.5
- },
- {
- name: "Berlin",
- 月份: "Jul.",
- 月均降雨量: 37.4
- },
- {
- name: "Berlin",
- 月份: "Aug.",
- 月均降雨量: 42.4
- }
- ];
- // var chart = new F2.Chart({
- // id: "mountNode",
- // pixelRatio: window.devicePixelRatio
- // });
- chart.source(data);
- chart.tooltip();
- chart.tooltip({
- showItemMarker: false,
- background: {
- radius: 2,
- fill: "#1890FF",
- padding: [3, 5]
- },
- tooltipMarkerStyle: {
- fill: "#1890FF",
- fillOpacity: 0.1
- },
- onShow: function onShow(ev) {
- var items = ev.items;
- items[0].name = null;
- items[0].value = "$" + items[0].value + "M";
- }
- });
- chart
- .interval()
- .position("月份*月均降雨量")
- .color("name")
- .adjust({
- type: "dodge",
- marginRatio: 0.05 // 设置分组间柱子的间距
- });
- chart.render();
- }
- }
XML/HTML Code复制内容到剪贴板
- <v-chart :padding="[30, 'auto']" :height="200" prevent-render @on-render="renderInteractionChart"></v-chart>
JavaScript Code复制内容到剪贴板
- // 渲染柱状图
- renderInteractionChart({ chart }) {
- var data = [
- {
- name: "London",
- 月份: "Jan.",
- 月均降雨量: 18.9
- },
- {
- name: "London",
- 月份: "Feb.",
- 月均降雨量: 28.8
- },
- {
- name: "London",
- 月份: "Mar.",
- 月均降雨量: 39.3
- },
- {
- name: "London",
- 月份: "Apr.",
- 月均降雨量: 81.4
- },
- {
- name: "London",
- 月份: "May.",
- 月均降雨量: 47
- },
- {
- name: "London",
- 月份: "Jun.",
- 月均降雨量: 20.3
- },
- {
- name: "London",
- 月份: "Jul.",
- 月均降雨量: 24
- },
- {
- name: "London",
- 月份: "Aug.",
- 月均降雨量: 35.6
- },
- {
- name: "Berlin",
- 月份: "Jan.",
- 月均降雨量: 12.4
- },
- {
- name: "Berlin",
- 月份: "Feb.",
- 月均降雨量: 23.2
- },
- {
- name: "Berlin",
- 月份: "Mar.",
- 月均降雨量: 34.5
- },
- {
- name: "Berlin",
- 月份: "Apr.",
- 月均降雨量: 99.7
- },
- {
- name: "Berlin",
- 月份: "May.",
- 月均降雨量: 52.6
- },
- {
- name: "Berlin",
- 月份: "Jun.",
- 月均降雨量: 35.5
- },
- {
- name: "Berlin",
- 月份: "Jul.",
- 月均降雨量: 37.4
- },
- {
- name: "Berlin",
- 月份: "Aug.",
- 月均降雨量: 42.4
- }
- ];
- // var chart = new F2.Chart({
- // id: "mountNode",
- // pixelRatio: window.devicePixelRatio
- // });
- chart.source(data);
- chart.tooltip({
- custom: true, // 自定义 tooltip 内容框
- onChange: function (obj) {
- const legend = chart.get('legendController').legends.top[0]
- const tooltipItems = obj.items
- const legendItems = legend.items
- const map = {}
- legendItems.map(item => {
- map[item.name] = JSON.parse(JSON.stringify(item))
- })
- tooltipItems.map(item => {
- const { name, value } = item
- if (map[name]) {
- map[name].value = value
- }
- })
- legend.setItems(Object.values(map))
- },
- onHide: function onHide() {
- var legend = chart.get("legendController").legends
- .top[0];
- legend.setItems(chart.getLegendItems().country);
- }
- });
- chart
- .interval()
- .position("月份*月均降雨量")
- .color("name")
- .adjust({
- type: "dodge",
- marginRatio: 0.05 // 设置分组间柱子的间距
- });
- chart.render();
- }
- },
JavaScript Code复制内容到剪贴板
- var data = [
- {
- title: "一工区",
- name: "计划进度",
- value: 18.9
- },
- {
- title: "二工区",
- name: "计划进度",
- value: 28.8
- },
- {
- title: "三工区",
- name: "计划进度",
- value: 39.3
- },
- {
- title: "四工区",
- name: "计划进度",
- value: 81.4
- },
- {
- title: "五工区",
- name: "计划进度",
- value: 47
- },
- {
- title: "六工区",
- name: "计划进度",
- value: 20.3
- },
- {
- title: "一工区",
- name: "实际进度",
- value: 12.4
- },
- {
- title: "二工区",
- name: "实际进度",
- value: 23.2
- },
- {
- title: "三工区",
- name: "实际进度",
- value: 34.5
- },
- {
- title: "四工区",
- name: "实际进度",
- value: 99.7
- },
- {
- title: "四工区",
- name: "实际进度",
- value: 52.6
- },
- {
- title: "五工区",
- name: "实际进度",
- value: 35.5
- },
- {
- title: "六工区",
- name: "实际进度",
- value: 37.4
- },
- ];
- chart.legend({
- align: 'center',
- itemWidth: null, // 图例项按照实际宽度渲染
- offsetY: -15,
- });
- chart.source(data);
- chart.tooltip({
- custom: true, // 自定义 tooltip 内容框
- onChange: function(obj) {
- const legend = chart.get("legendController").legends
- .top[0];
- const tooltipItems = obj.items;
- const legendItems = legend.items;
- const map = {};
- legendItems.map(item => {
- map[item.name] = JSON.parse(
- JSON.stringify(item)
- );
- });
- tooltipItems.map(item => {
- const { name, value } = item;
- if (map[name]) {
- map[name].value = value + "%";
- }
- });
- legend.setItems(Object.values(map));
- },
- onHide: function onHide() {
- var legend = chart.get("legendController").legends
- .top[0];
- legend.setItems(chart.getLegendItems().country);
- }
- });
- // position 将数据值映射到图形的位置上的方法,使用 * 连接,position 属性会对多个字段进行数据的映射
- chart
- .interval()
- .position("title*value")
- .color("name")
- .adjust({
- type: "dodge",
- marginRatio: 0.2 // 设置分组间柱子的间距
- });
- chart.render();
上一篇 如何在你的Vue项目配置vux
下一篇 返回列表