快速上手Echarts

ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求,可以免费商用。当我们想要在网页中插入一些图表,来让数据可视化时,就可以使用Echats。

首先去官网(https://echarts.apache.org/examples/zh/index.html)。

这里有很多的图,基本上包含了平常所需要的图表。那怎么使用呢?

第一步,在官网下载界面获取官方码源包后构建。

 点击下载。

这里有很多的下载方式,推荐下载方法一中从GitHub下载编译产物,可以直接拿来使用。

进来后也是有很多的码源包,每个码源包都有不同的使用条件,看自己需求来选择。

每个码源包具体的使用条件还不是很清楚,如果你只是使用一些简单的饼状图,折线图,柱状图等选择echatrs.min.js即可。

 进来后选择右边Raw,然后右键选择将链接另存为。 

除了这些你还能在线定制,可自由选择所需图表、坐标系、组件进行打包下载。注意:打包的源文件来自 jsdelivr CDN,非 Apache 官方源代码和编译产物。在下载界面往下滑就能找到。

 

 选择好后,点击下载,就能得到一个适合自己的最小化的js文件,提升网站的加载速度。

接下来主要就是三大步,在网页中通过标签方式直接引入构建好的echarts文件,绘制图表,插入图表。

引入Echarts

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="static/js/echarts.min.js"></script>
  </head>
</html>

新建一个空HTML文件,或者是在写好的HTML文件中,引入echarts就是把刚刚下载好的echarts文件的位置放在HTML网页的头部位置。

我使用的开发环境是pycharm里的flask,把下载好的echarts文件复制到static/js中,其实放别的地方也行,只要在src中把绝对路径写出来。 

<script src="static/js/echarts.min.js"></script>

然后在绘图前我们需要为 ECharts 准备一个定义了高宽的 DOM 容器。在刚才的例子 </head> 之后添加,容器的高宽就是图表的大小,可以自己设置。

<body>
  <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
  <div id="main" style="width: 600px;height:400px;"></div>
</body>

绘制图表 

现在就可以去官网找一个你认为合适的图表,然后在此基础上进行修改。例如选择第一个柱状图。 

 进来之后左边是图表JavaScript的代码,右边是数据的显示。我们主要是修改js代码,那不会js怎么办呢。其实关系也不大,只要能看懂一点基础的就行。

我们现在来修改右边图形的颜色。在option下加上color:[''], 里面的填写#加上RGB的16进制的颜色编码。例如 color:['#ff00f8'],       

 option下面xAxis是X轴,data里面就是X轴坐标。 yAxis是Y轴。series是系列的意思,实际上就是柱的数据,例如可以调整data的第一个数据的数值,改成250。

其实更多的用法是在其他图表里找有什么是我们需要的部分。

 看右边这个图表的左上方有标题,而我们刚刚那个图表就没有。我们就看左边代码里有个title,里面的内容和标题是一样的,就把这个title复制到刚刚的图表里。

像柱状图比较常见的操作还有就是:

当你把鼠标放到某一柱上时,背后会有阴影,且还会显示柱的数值。

 tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'shadow'
    }
  },

当你第一次打开时,每个柱都是从0开始向上增加的动图。

const drilldownData = [
  {
    dataGroupId: 'Mon',

  },
  {
    dataGroupId: 'Tue',
    
  },
  {
    dataGroupId: 'Wed',
  },
    {
    dataGroupId: 'Thu',
  },
    {
    dataGroupId: 'Fri',
  },
    {
    dataGroupId: 'Sat',
  },
    {
    dataGroupId: 'Sun',
  }
];

其中dataGroupId就是X轴坐标。注意这段代码要放到分号;的后面,不然会报错。

 如果遇到了实在不理解的部分,可以在官网中查询。

 先复制不理解的部分,然后点击文档->配置项手册。 

 在配置项下粘贴,例如title。就会有解释,还会告诉有什么属性和怎么用。

插入图表

 当我们修改好了图表时,点击下载实例。

下载下来的是一个HTML网页,把这个复制到templates下,打开。把这个页面body中的script复制到我们引入好echarts的页面中的body里面。

script下的第一句为基于准备好的dom,初始化一个echarts实例。
var dom = document.getElementById('container');
这里面的container改成main,因为我们之前在为echarts定义一个dom时,div里的id为main。
注意不要和其他div里的id重名,不然就改成别的名字。

<body>
  <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
  <div id="main" style="width: 600px;height:400px;"></div>
</body>

这样就把echarts插入到了我们的HTML页面中了。

如果你不想要echarts中的写好的数据,可以使用数据库或者excel中的数据,这就像是把后端中的数据传到前端表示出来。

例如我想做一个电影评分表,之前就要把电影的评分存入MySQL数据库中。然后使用SQL语句,把相同电影评分放在一组。

先在flask中连接好MySQKL数据库。

HOSTNAME = '127.0.0.1'
PORT     = '3306'
DARABASE = '数据库名字'
USERNAME = 'root'
PASSWORD = '数据库密码'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DARABASE)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)

 然后统计相同评分的电影有多少部。

@app.route('/score')
def score():
    score = [] #评分
    num = [] #每个评分所统计出的电影数量
    db.reflect()
    #获取数据库的所有表
    all_table = {table_obj.name: table_obj for table_obj in db.get_tables_for_bind()}
    #把movies表中评分相同的分为一组,并统计其数量
    data = db.session.query(all_table['movies'].c.rate , db.func.count(all_table['movies'].c.rate)).group_by(all_table['movies'].c.rate).all()
    for item in data:
        score.append(item[0])
        num.append(item[1])
    print(score)
    print(num)
    #把评分和数量传给HTML页面
    return render_template("score.html",score = score,num = num)

 HTML中把传过来的值写在两对花括号里{{}}。其中  |tojson  是为了防止页面不能正常显示字符串。

 xAxis: {
            type: 'category',
            data: {{ score|tojson }}
              <!--['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']-->
          },
          yAxis: {
            type: 'value'
          },
          series: [
            {
              data:{{ num|tojson}},
              <!-- [120, 200, 150, 80, 70, 110, 130],-->
              type: 'bar'
            }
          ]

好了,echarts的基本使用方法就这些,还有什么问题可以去官网查看手册和API,还是比较详细的。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值