1.canvas初体验
<canvas width ="600" height ="400" > </canvas >
</body >
</html >
<script >
let canvas=document .querySelector ('canvas' );
let ctx=canvas.getContext ('2d' );
ctx.moveTo (100 ,100 );
ctx.lineTo (100 ,200 );
ctx.lineTo (200 ,100 );
ctx.fillStyle ='red'
ctx.fill ();
ctx.strokeStyle ='purple'
ctx.lineWidth ='20'
ctx.closePath ();
ctx.stroke ()
2.绘制矩形
<body >
<canvas width ="400" height ="400" > </canvas >
</body >
</html >
<script >
let canvas=document .querySelector ('canvas' );
let ctx=canvas.getContext ('2d' );
ctx.strokeRect (100 ,200 ,100 ,200 );
ctx.fillStyle ='cyan'
ctx.fillRect (300 ,200 ,100 ,200 )
3.绘制圆形
<body >
<canvas width ="600" height ="400" > </canvas >
</body >
</html >
<script >
let canvas=document .querySelector ('canvas' );
let ctx=canvas.getContext ('2d' );
ctx.beginPath ();
ctx.arc (100 ,100 ,50 ,0 ,2 *Math .PI ,true );
ctx.fillStyle ='red'
ctx.fill ()
ctx.stroke ();
4.绘制字体和清除画布
<body >
<canvas width ="600" height ="400" > </canvas >
</body >
</html >
<script >
let canvas=document .querySelector ('canvas' );
let ctx=canvas.getContext ('2d' );
ctx.fillRect (100 ,200 ,100 ,200 )
ctx.clearRect (100 ,200 ,100 ,200 );
ctx.font ='20px 微软雅黑'
ctx.fillText ('数据可视化' ,50 ,20 );
5.SVG
创建一条直线
创建折线
创建矩形
创建圆
创建圆和椭圆
创建多边形
通过指定点以及点和点之间的线来创建任意形状
<style >
*{
margin : 0 ;
padding : 0 ;
}
.box {
width : 800px ;
height : 800px ;
}
</style >
</head >
<body >
<svg class ="box" >
<line x1 ="100" y1 ="100" x2 ="200" y2 ="200" stroke ="red" > </line >
<line x1 ="100" y1 ="200" x2 ="200" y2 ="100" stroke ="red" > </line >
<polyline points ="300 300,150 150,120 400" > </polyline >
<rect x ="400" y ="200" width ="150" height ="50" fill ="pink" > </rect >
<circle cx ="70" cy ="95" r ="50" > </circle >
</svg >
6.ECharts入门
<script src ="https://cdn.bootcdn.net/ajax/libs/echarts/5.4.0/echarts.js" > </script >
<style >
*{
margin : 0 ;
padding : 0 ;
}
div {
width : 600px ;
height : 400px ;
}
</style >
</head >
<body >
<div > </div >
</body >
</html >
<script >
let dom=document .querySelector ('div' );
let mycharts=echarts.init (dom);
mycharts.setOption ({
title :{
text :'数据可视化' ,
subtext :'echarts的基本使用' ,
textStyle :{
color :'cyan'
},
left :'center'
},
xAxis :{
data :['衣服' ,'直播' ,'电影' ,'游戏' ]
},
yAxis :{
axisLine :{
show :true ,
},
axisTick :{
show :true
}
},
series :[
{
type :'bar' ,
data :[10 ,20 ,30 ,40 ],
color :'red'
}
]
})
</script >
6.1Echarts新特性 数据集
// 基于准备好的dom初始化echarts实例
let dom=document.querySelector('div');
// 创建echarts实例
let mycharts=echarts.init(dom);
// 数据集
let data=[
['衣服',10,22,'x',10],
['直播',12,55,'y',30],
['电影',16,44,'z',60],
['游戏',19,32,'t',30],
]
// 指定图标的配置项与数据
mycharts.setOption({
// 设置字符集
dataset:{
// 数据源
source:data
},
// 图标的标题
title:{
// 主标题的设置
text:'数据可视化',
// 子标题
subtext:'echarts的基本使用',
// 主标题的颜色
textStyle:{
color:'cyan'
},
// 设置标题位置
left:'center'
},
// x轴的配置对象
xAxis:{
// 数据
// data:['衣服','直播','电影','游戏']
},
//y轴的配置项
yAxis:{
// 显示y轴的线
axisLine:{
show:true,
},
// 显示y轴的刻度
axisTick:{
show:true
}
},
// legend: {
// orient: "vertical",
// left: "left",
// data: ["x", "y", "z", "t"]
// },
// 系列的设置:绘制什么样类型的图标 数据的展示在这里设置
series:[
// 柱状图
{
// 图表类型的设置 bar柱状图 line 折线图 pie饼图
type:'bar',
// 图标的数据
// data:[10,20,30,40],
color:'red',
encode:{
y:1,
}
},
// 折线图
{
type:'line',
// data:[10,20,30,40],
color:'pink',
encode:{
y:2
}
},
// 饼图
{
type:'pie',
encode:{
// 饼图旁边文字用的是谁
itemName:3,
value:4
},
// 饼图你可以显示文字,data写法如下
// data:[{
// name:'x',
// value:10
// },
// {
// name:'y',
// value:20
// },
// {
// name:'z',
// value:30
// },
// {
// name:'t',
// value:40
// }
// ],
// 饼图的宽度高度半径
width:150,
height:150,
left:150,
top:100,
radius:25
},
]
})
6.2Echarts组件
let dom=document .querySelector ('.box' );
let mycharts=echarts.init (dom);
mycharts.setOption ({
dataZoom :{},
title :{
text :'echarts组件'
},
xAxis :{
data :['游戏' ,'电影' ,'直播' ,'娱乐' ]
},
yAxis :{},
series :[
{
name :'柱状图' ,
type :'bar' ,
data :[20 ,30 ,40 ,50 ]
},
{
name :'折线图' ,
type :'line' ,
data :[30 ,40 ,50 ,60 ]
}
],
tooltip :{
textStyle :{
color :'red'
}
},
legend :{
data :['柱状图' ,'折线图' ]
},
toolbox : {
show : true ,
feature : {
dataZoom : {
yAxisIndex : "none"
},
dataView : {
readOnly : false
},
magicType : {
type : ["line" , "bar" ]
},
restore : {},
saveAsImage : {}
},
},
grid : {
left :30 ,
right :0
},
})