使用echarts在网页中具备下拉菜单,通过下拉菜单切换显示不同的图表; 2、图表1:采用柱状图分别显示男性、女性的两组数据,每组数据显示生还和去世人数; 3、图表2:采用饼图分别显示男性、女性的两组数据,每组数据显示生还和去世的比例; 4、图表3:采用线状图分别显示1,2,3等舱的生还人员数量; 5、图表4:采用散点图显示1,2,3等舱与生还人员年龄的对应关系。
时间: 2023-05-26 19:07:25 浏览: 124
具体实现方法可能有所不同,下面是一个可能的实现方案。
1、下拉菜单部分可以使用HTML和JavaScript来实现,例如:
```HTML
<select id="chartSelector">
<option value="bar">男女生还情况柱状图</option>
<option value="pie">男女生还比例饼图</option>
<option value="line">舱位生还情况折线图</option>
<option value="scatter">舱位与年龄散点图</option>
</select>
```
监听下拉菜单的变化,根据选中的值来显示对应的图表即可。
2、柱状图部分可以使用ECharts库来绘制,需要准备好数据格式和配置项。例如:
```JavaScript
// 数据格式
var data = {
male: {
survived: 123,
died: 456
},
female: {
survived: 789,
died: 321
}
};
// 配置项
var options = {
xAxis: {
data: ['男性', '女性']
},
yAxis: {},
series: [
{
name: '生还',
type: 'bar',
stack: '人数',
data: [data.male.survived, data.female.survived]
},
{
name: '去世',
type: 'bar',
stack: '人数',
data: [data.male.died, data.female.died]
}
]
};
// 绘制图表
var chart = echarts.init(document.getElementById('chart'));
chart.setOption(options);
```
可以根据需要修改数据和配置项,然后再调用 `setOption` 方法来更新图表。
3、饼图部分的实现和柱状图类似,不同之处在于数据格式和配置项。例如:
```JavaScript
// 数据格式
var data = {
male: {
survived: 123,
died: 456
},
female: {
survived: 789,
died: 321
}
};
// 配置项
var options = {
series: [
{
name: '男性',
type: 'pie',
radius: '55%',
data: [
{value: data.male.survived, name: '生还'},
{value: data.male.died, name: '去世'}
]
},
{
name: '女性',
type: 'pie',
radius: '55%',
data: [
{value: data.female.survived, name: '生还'},
{value: data.female.died, name: '去世'}
]
}
]
};
// 绘制图表
var chart = echarts.init(document.getElementById('chart'));
chart.setOption(options);
```
4、折线图部分需要按舱位分别统计生还人数,然后绘制折线图。例如:
```JavaScript
// 数据格式
var data = [
{ cabin: '1', survived: 69 },
{ cabin: '2', survived: 74 },
{ cabin: '3', survived: 119 }
];
// 配置项
var options = {
xAxis: {
type: 'category',
data: data.map(function(item) { return item.cabin; }),
},
yAxis: {},
series: [{
type: 'line',
data: data.map(function(item) { return item.survived; }),
}]
};
// 绘制图表
var chart = echarts.init(document.getElementById('chart'));
chart.setOption(options);
```
5、散点图部分需要按舱位和年龄分别统计生还人数,然后绘制散点图。例如:
```JavaScript
// 数据格式
var data = [
{ cabin: '1', age: 20, survived: true },
{ cabin: '1', age: 30, survived: false },
{ cabin: '2', age: 25, survived: true },
{ cabin: '2', age: 35, survived: true },
{ cabin: '2', age: 45, survived: false },
{ cabin: '3', age: 30, survived: true },
// ...
];
// 配置项
var options = {
xAxis: { name: '年龄' },
yAxis: { name: '舱位' },
series: [{
type: 'scatter',
symbolSize: function(data) { return data.survived ? 10 : 5; },
data: data.map(function(item) {
return [item.age, item.cabin, item.survived];
})
}]
};
// 绘制图表
var chart = echarts.init(document.getElementById('chart'));
chart.setOption(options);
```
散点图的数据格式需要注意,其中每个项包含三个属性:年龄、舱位和生还情况。为了方便起见,这里使用 Boolean 类型来表示生还情况。
符合实际情况的数据应该包含更多细节,比如性别、票价、亲属等信息,可以根据实际需求扩展格式和绘制方法。
阅读全文