PBI中使用SVG自定义折线缩略图

1. 目的驱动

在学习别人做的报表的时候,我有看到如下图所示的效果。

我个人觉得这个趋势图比较有意思,于是就研究了一下是如何画出来的。
经研究发现,这个就是用SVG画出来的。
前面介绍SVG的时候提到过,SVG可以用来画一些自定义的图表。
这里我们主要就学习如何用SVG画折线图
图中所示的折线图的含义是:每类电影票房趋势的变化(by year)
即:X轴——year,Y轴——每年该类电影票房总值。

2. 理解设计原理

由于是缩略图,我们肯定不能按照真实的year和票房来展现X、Y轴。
而需要对X、Y轴进行一些处理,让缩略图显示得更加美观。

对X、Y轴的处理主要就是:计算相对位置(当前值在整个区间内的比例)
X轴:以最小年份作为X轴的起点,最大年份作为X轴的终点,然后计算当前年份在整个区间内的百分比位置。Y轴同理。

比如X轴:假设某电影的上映年限为2000年-2020年,如果当前年份为2010年,那么2010年就应该在整个X轴的50%的位置。
Y轴同理:假设某电影的票房区间(最大值-最小值)(by year)为一亿,而当前年份的票房高出最低票房三千万,则该年的Y坐标就应该在整个Y轴的30%的位置。

:必须理解 “相对位置” 的概念,才能知道图是何如画出来的。

1. SVG折线图基本属性

折线图的简单示例:

<svg xmlns='http://www.w3.org/2000/svg'
	 viewBox='0 0 500 500'>
<polyline
		  fill='none'
		  stroke='red'
		  stroke-width='4'
		  points='0,40 40,40 40,80 80,80 80,120 120,120 120,160'/>
</svg>

1. 标签

画简单的折线图,我们只需要用到两个标签。

  1. <svg…>…</svg> 标签最基本的标签,画任何类型的图都需要在外面嵌套<svg…>…</svg>标签;
  2. <polyline…/> 标签:专门画折线图的标签。

2.标签的属性

  1. 每个标签会有一些基本的属性(在PBI中使用SVG时,属性值必须用单引号引起来)。
  2. 每个属性之间用空格进行分隔(可以换行)。

标签属性说明:

  • xmlns:说明这段代码所遵从的标准;
  • viewBox:设置可视窗口的大小;
  • fill:设置图形填充颜色;
  • stroke:设置图形边框的颜色;
  • stroke-width:设置图形边框的宽度;
  • points:画折线图的点位信息,每个点位用空格隔开,SVG会按顺序将各个点连接起来;
    如:points=‘0,40 40,40 40,80 80,80 80,120 120,120 120,160’
    代表依次从点1(0,40)到点2(40,40)到点3(40,80)…,直到最后一个点,绘制折线图。

3. 显示折线图

可以在 SVG图形展示 中查看SVG的图形形状 (将代码粘贴到文本框中,然后运行即可)。
前面的SVG代码就可以绘制出下面的折线图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值