Giter Club home page Giter Club logo

wx-f2's Introduction

F2 微信小程序

F2 的微信小程序版本,支持原生 F2 的所有功能,欢迎使用反馈。

快速体验

  • 微信扫码体验

  • 使用微信开发者工具打开此项

说明

为了方便使用,我们封装了微信小程序的自定义组件,故需要微信小程序支持使用 npm 安装第三包。
重要:版本要求

  1. 小程序基础库版本 2.7.0 或以上
  2. 开发者工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装第三方包。

如何使用

1. 安装依赖

项目默认初始化出来的是没有package.json的,需要新增package.json后再安装

## 没有package.json时执行下面这段
## echo "{}" > package.json

npm install @antv/wx-f2 --save

安装好依赖包之后,点击工具顶部菜单栏的详情:

勾选“使用 npm 模块”选项:

最后点击开发者工具中的菜单栏:工具 --> 构建 npm 即可运行。

如果碰到 @babel/runtime 未找到npm包入口文件,直接忽略就行了,不影响使用(强迫症碍眼的话,手动删除node_modules/@babel/runtime目录)

rm -rf node_modules/@babel/runtime

2. 使用自定义组件

1. 打开json文件,引入组件

{
  "usingComponents": {
    "f2": "@antv/wx-f2"
  }
}

2. wxml 使用组件

<view class="container">
  <f2 class="f2-chart" onInit="{{onInitChart}}" />
</view>

3. wxss 设置宽高

.f2-chart {
  width: 100%;
  height: 500rpx;
}

4. 实例化图表

Page({
  data: {
    onInitChart(F2, config) {
      const chart = new F2.Chart(config);
      const data = [
        { value: 63.4, city: 'New York', date: '2011-10-01' },
        { value: 62.7, city: 'Alaska', date: '2011-10-01' },
        { value: 72.2, city: 'Austin', date: '2011-10-01' },
        { value: 58, city: 'New York', date: '2011-10-02' },
        { value: 59.9, city: 'Alaska', date: '2011-10-02' },
        { value: 67.7, city: 'Austin', date: '2011-10-02' },
        { value: 53.3, city: 'New York', date: '2011-10-03' },
        { value: 59.1, city: 'Alaska', date: '2011-10-03' },
        { value: 69.4, city: 'Austin', date: '2011-10-03' },
      ];
      chart.source(data, {
        date: {
          range: [0, 1],
          type: 'timeCat',
          mask: 'MM-DD'
        },
        value: {
          max: 300,
          tickCount: 4
        }
      });
      chart.area().position('date*value').color('city').adjust('stack');
      chart.line().position('date*value').color('city').adjust('stack');
      chart.render();
      // 注意:需要把chart return 出来
      return chart;
    }
  },
});

API

如何贡献

如果您在使用的过程中碰到问题,可以先通过 issues 看看有没有类似的 bug 或者建议。

License

MIT license

wx-f2's People

Contributors

huisnotacouncillor avatar simaq avatar wadezhan avatar zengyue 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

wx-f2's Issues

能不能设置环形图的提示信息的字体大小?

const text = group.addShape('Text', {
attrs: {
x: point2.x,
y: point2.y,
text: origin._origin.department + '\n' + origin._origin.personCount + '人(' + origin._origin.departureRate + ')',
fill: '#808080',
textAlign: 'left',
textBaseline: 'bottom',
// fontSize: 12
},
style: {
// fontSize: 14
fontSize: 12
}
});

@simaQ 小姐姐,如上面,能不能设置环形图的提示信息的字体大小?

axis (x轴)label 属性,设置textAlign=end 在真机的效果等同于start。。。。

测试环境:
ios11.3
小程序基础库: 2.1.0

// x 轴
chart.axis('year', {
// 第一个点左对齐,最后一个点右对齐,其余居中,只有一个点时左对齐
label: (text, index, total) => {
const cfg = {
textAlign: 'center'
};
if (index == 0) {
cfg.textAlign = 'start';
}
if (index > 0 && index == total - 1) {
cfg.textAlign = 'end';
}
cfg.fill = '#fff';
return cfg;
},
line: {
lineWidth: 0.7,
stroke: '#ededed'
},
labelOffset: 10,
})
axis (x轴)label 属性,设置textAlign=end 在真机的效果是start的效果。。。。

柱状图显示不下

如果是柱状图的话,有比较多的数据,导致x轴显示不下,可以平移x轴吗?应该怎么解决

如何渲染接口返回的数据

let data = [];

function initChart(canvas, width, height) {
// console.warn(canvas);
// console.warn(width)
// var ctx = wx.createCanvasContext('feature-line', this);
// const canvas = new Renderer(ctx);
// const query = wx.createSelectorQuery().in(this);
// console.info(query)
// query.select('.feature-line-dom').boundingClientRect(res => {
// console.warn(res)
// })
// console.info(canvas)

chart = new F2.Chart({
    el: canvas,
    width,
    height
});

chart.source(data, {
    value: {
        tickCount: 5,
        min: 0
    },
    day: {
        range: [0, 1]
    }
});

}
Page({
data: {
opts: {
onInit: initChart
}
},
onShow: function() {
const that = this;
app.cRequest({
url: 'body-data',
success: function(res) {
if (res) {
that.setData(res);

            }
        }
    })
},

})

为什么引入我的小程序就报错,单独运行却没问题

VM2342:1 TypeError: Cannot read property 'defaultView' of undefined
at Object.getStyle (f2.js? [sm]:1)
at Object.getHeight (f2.js? [sm]:1)
at t._initCanvas (f2.js? [sm]:1)
at new t (f2.js? [sm]:1)
at e._initCanvas (f2.js? [sm]:1)
at e._init (f2.js? [sm]:1)
at new e (f2.js? [sm]:1)
at Object.initChart [as onInit] (index.js? [sm]:16)
at t. (f2-canvas.js? [sm]:94)
at WAService.js:9

wx-F2怎么进行重绘?

比如我按时间请求接口,刷新图表里面的文本、图形以及交互事件都要改变。 chart.changeData(xxx);只是改变图形,文本并没有被清空,交互事件再点点击会报错。

f2更新到3.2.0-beta.5报错

thirdScriptError
sdk uncaught third Error
Cannot read property 'createElement' of undefined
TypeError: Cannot read property 'createElement' of undefined
at http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:4307:17
at Object. (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:4568:6)
at e (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:10:93)
at Object. (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:2611:13)
at e (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:10:93)
at Object. (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:4096:32)
at e (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:10:93)
at Object. (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:4094:78)
at e (http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:10:93)
at http://127.0.0.1:61712/appservice/static/f2-canvas/lib/f2.js:21:18
console.error @ VM114:1
(anonymous) @ WAService.js:5
(anonymous) @ WAService.js:6
a @ appservice?t=1529628824674:1171
window.onerror @ VM114:1
VM114:1 jsEnginScriptError
Component is not found in path "static/f2-canvas/f2-canvas" (using by "pages/analysis/main")
Error: Component is not found in path "static/f2-canvas/f2-canvas" (using by "pages/analysis/main")
at e (http://127.0.0.1:61712/appservice/__dev__/WAService.js:18:7261)
at e (http://127.0.0.1:61712/appservice/__dev__/WAService.js:18:7413)
at oe (http://127.0.0.1:61712/appservice/__dev__/WAService.js:18:16573)
at Object.t.addView (http://127.0.0.1:61712/appservice/__dev__/WAService.js:18:17894)
at Function.value (http://127.0.0.1:61712/appservice/__dev__/WAService.js:1:29486)
at B (http://127.0.0.1:61712/appservice/__dev__/WAService.js:1:6091)
at K (http://127.0.0.1:61712/appservice/__dev__/WAService.js:1:8527)
at q (http://127.0.0.1:61712/appservice/__dev__/WAService.js:1:8793)
at Function. (http://127.0.0.1:61712/appservice/__dev__/WAService.js:1:11643)
at http://127.0.0.1:61712/appservice/__dev__/WAService.js:1:17558
console.error @ VM114:1
errorReport @ WAService.js:4
(anonymous) @ WAService.js:4
t.errorReport @ WAService.js:1
(anonymous) @ WAService.js:1
(anonymous) @ WAService.js:7
(anonymous) @ WAService.js:7
(anonymous) @ WAService.js:6
a @ appservice?t=1529628824674:1171
d.registerCallback @ appservice?t=1529628824674:1171
m.forEach @ appservice?t=1529628824674:1171
d @ appservice?t=1529628824674:1171
j.onmessage @ appservice?t=1529628824674:1171

请问f2交互怎么弄

这里面好像没有看到交互事件,能开放交互功能吗,应该怎么弄?直接在官网下的f2-all.min没有处理createElement类的方法,微信小程序不支持报错

打开项目报game.json 找不到错误

VM479:1 Error: ENOENT: no such file or directory, open 'E:\learn\echarts-for-weixin-master\echarts-for-weixin-master\game.json'
请问这是什么原因,如果解决?

IOS测试出现一个问题,但我不确定是f2,微信还是Apple的问题

  1. 我的需求是实现一个和官网区域图(存在空值)类似的图, 我的X轴是时间 类似于 ##2018-05-31 16:22:57##
  2. 模拟器测试正常!
  3. 模拟器远程调试 安卓 IOS都正常!
  4. 模拟器预览 安卓正常, IOS错误
    模拟器正常样式
    模拟器正常

IOS报错

安卓微信版本6.6.6
IOS微信版本6.6.6, 6.6.7
X轴尝试过 'YYYY-MM-DD HH:mm:ss' 'HH:mm:ss' 'HH:mm' 全部报错如上图
实在是找不到解决办法,所以来求证一下!

f2数据更新问题

看到之前提问里面有说到用chart.changeData(data) 但是报错了,请问该怎么用啊

Yaxis刻度异常

image

刻度理应是升序,但图中左侧刻度29.7->29.1->29.6此行为为异常

如何异步 设置 chart里的data

如题。
现在好像只能在
data. opts 里的onInit 方法里设置data值?

如果data是异步获取的。怎样重新渲染这个图表呢

微信小程序 tooltip 不显示

微信开发者工具直接打开 wx-f2 项目,可以使用 tooltip;

我在 mpvue 中使用,引入 wx-f2 项目中的 f2-canvas,改成手动初始化渲染

opts: {
  lazyLoad: true
}
this.$mp.page.selectComponent('#canvas').init(initChart)

图形已经渲染,tooltip 没效果,是因为我引入的 f2-canvas 不是完整版的,没有 tooltip 插件?还是由于我哪里使用错误?

怎么通过api接口返回数据回来后再渲染图表

示例都是假设一进去页面,数据都存在,直接在data中赋值渲染。现实通过接口返回图表数据后,通过this.setDat({
opts: {
onInit: initChart
}
})
却无效,没有显示出图表???
希望有示例说明一下,谢谢!

[BUG]雷达图无法使用img

小程序chart.guide().html()问题 TypeError: Cannot read property 'createElement' of undefined
参考官方雷达图demo 投资能力评估
image
小程序是无法进行DOM操作的,现在有个和官方雷达图类一样带图片的需求,请问有办法解决吗

雷达图,配置label显示颜色无效

chart.axis('name', {
grid: {
lineDash: null
},
label: {
Offset: 10,
textStyle: {
fill: '#ff0000',
textAlign: 'center' // 设置坐标轴 label 的文本对齐方向
}
}
});

在组件中使用F2报错

使用方法:

  • 新增一个component
  • 将源码的例子写进去 ...
  • 引用组件 x-bar:"..."

报错内容:

TypeError: Cannot read property 'defaultView' of undefined
    at Object.getStyle (f2.js? [sm]:5203)
    at Object.getHeight (f2.js? [sm]:5213)
    at Canvas._initCanvas (f2.js? [sm]:7060)
    at new Canvas (f2.js? [sm]:7010)
    at Chart._initCanvas (f2.js? [sm]:4422)
    at Chart._init (f2.js? [sm]:4462)
    at new Chart (f2.js? [sm]:4493)
    at Object.initChart [as onInit] (index.js? [sm]:41)
    at t.<anonymous> (f2-canvas.js? [sm]:93)
    at WAService.js:10

小程序刷新数据怎么不更新图表

let EchartViewData = res.data.retData.EchartView;
let xAxisData = res.data.retData.EchartTitle;
console.log(EchartViewData)
console.log(chart)
for (let i = 0; i < EchartViewData.length;i++){
console.log(i)
EchartViewData[i]['namex'] = xAxisData[i]
}
console.log(EchartViewData)
chart.source(EchartViewData, {
value: {
tickCount: 5,
min: 0
},
namex: {
range: [0, 1]
}
});
chart.line().position('namex*value').color('value', val => { });
chart.render();

微信小程序 npm

微信小程序 可以用npm的 微信小程序有框架的 mpvue wapy 都可以npm install 你这个能不能也支持一下 mpVue呢

关于折线图中断点数据的处理

使用f2插件在微信小程序中绘制折线图时遇到一个问题,原数据列中有一些断点数据,理想是折线上直接显示断点,但是实际渲染过程中,插件默认用0进行了填充,y轴的数据列选择的是linear类型
image

图表更新显示bug

在微信小程序中,如果更新数据过快并且图标初始化还没完成,会报错(Cannot read property 'changeData' of null)或者不显示,有什么处理办法没有?

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.