对 Udemy 在线网络课程进行数据分析与可视化展现,数据包含了2011年到2017年的所有课程数据,每个课程数据包含了课程名称、价格、学科、评论数量、订阅数量等信息。用到了 pandas 和 echarts。
数据来源: Udemy Courses - Kaggle
直接浏览器打开 index.html 文件即可,支持 file 协议。
源数据有 3684 条,因此 data.js 文件比较大
Udemy 课程数据可视化
Udemy 课程数据可视化
/** udemy 课程数据可视化 公共 js 文件 */
/** Echarts Dom 操作 */
/** 课程 免费/付费 数量,饼图 */
function echart_1() {
let el = 'echart-1'
let pieChart = echarts.init(document.getElementById(el))
let option = {
title: {
left: '20%',
text: '免费/付费 课程数量对比'
},
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {},
series: [
{
name: '在线课程数量',
type: 'pie',
radius: ['50%', '75%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 30,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 3544, name: '付费课程' },
{ value: 600, name: '免费课程' }
]
}
],
}
pieChart.setOption(option)
}
/** 各类别课程 免费/付费 数量 柱状图 */
function echart_2() {
let el = 'echart-2'
let chart = echarts.init(document.getElementById(el))
let option = {
title: {
left: '20%',
text: '各主题的 免费/付费 课程数量'
},
legend: {},
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
xAxis: [
{
type: 'category',
name: '主题',
data: ['Business Finance', 'Graphic Design', 'Musical Instruments', 'Web Development']
}
],
yAxis: [
{
type: 'value',
name: '数量'
}
],
series: [
{
name: '付费',
type: 'bar',
data: [1099, 568, 634, 1067],
markPoint: {
data: [
{type: 'max', name: '最大值'},
{type: 'min', name: '最小值'}
]
}
},
{
name: '免费',
type: 'bar',
data: [96, 35, 46, 133],
markPoint: {
data: [
{ type: 'max', name: '最大值' },
{ type: 'min', name: '最小值' }
]
}
}
],
}
chart.setOption(option)
}
/** 各类别课程的价格分布 */
function echart_3() {
let el = 'echart-3'
let chart = echarts.init(document.getElementById(el))
let data = SUBJECT_PRICE_COUNT_ARRAY.map( ls => [ls[1], ls[0], ls[2]] )
let option = {
title: {
left: 'center',
text: '各主题课程的价格分布'
},
// legend: {},
tooltip: {
trigger: 'item',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
xAxis: {
type: 'category',
data: SUBJECT_PRICE_COUNT["price"],
name: '价格',
axisLine: {
show: false
}
},
yAxis: [
{
type: 'category',
data: SUBJECTS,
axisLine: {
show: false
},
boundaryGap: false,
splitLine: {
show: true,
lineStyle: {
color: '#999',
type: 'dashed'
}
},
name: '主题'
},
],
series: [
{
name: '课程数量',
type: 'scatter',
areaStyle: {},
data: data,
symbolSize: function (val) {
// return Math.log2(val[2]) * 6;
return val[2] / 3
},
animationDelay: function (idx) {
return idx * 5;
},
tooltip: {
// formatter: '价格: {a} {b}
个数:{c[2]}'
}
},
],
}
// option.xAxis.data = subject_price_counts.price
// option.series[0].data = subject_price_counts["Business Finance"]
// option.series[1].data = subject_price_counts["Graphic Design"]
chart.setOption(option)
}
/** 各等级 免费/付费 数量 */
function echart_4() {
let el = 'echart-4'
let chart = echarts.init(document.getElementById(el))
let option = {
title: {
left: '20%',
text: '各课程难度的 免费/付费 课程数量'
},
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {},
xAxis: [
{
type: 'category',
data: ['All Levels', 'Beginner Level', 'Intermediate Level', 'Expert Level'],
name: '课程难度'
}
],
yAxis: [
{
type: 'value',
name: '数量'
}
],
series: [
{
name: '付费',
type: 'bar',
data: [1807, 1112, 391, 58,],
markPoint: {
data: [
{ type: 'max', name: '最大值' },
{ type: 'min', name: '最小值' }
]
}
},
{
name: '免费',
type: 'bar',
data: [122, 158, 30, 0],
markPoint: {
data: [
{ type: 'max', name: '最大值' },
{ type: 'min', name: '最小值' }
]
}
}
],
}
chart.setOption(option)
}
/** 价格的 cdf 柱状图 BOX图分布 */
function echart_5() {
let el = 'echart-5'
let chart = echarts.init(document.getElementById(el))
let data = PRICE_CDF.x.map( (n, i) => [n, PRICE_CDF.y[i]])
let option = {
title: {
left: '20%',
text: '在线课程的价格分布如何'
},
legend: {},
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
grid: [
{ x: '5%', width: '25%'},
{ x: '30%', width: '40%'},
{ x: '75%', width: '20%'},
],
xAxis: [
{
type: 'category',
data: SUBJECT_PRICE_COUNT.price,
gridIndex: 0,
name: '价格'
},
{
type: 'category',
data: PRICE_COUNT.x,
gridIndex: 1,
name: '价格区间'
},
{
type: 'category',
data: ['价格'],
splitArea: {
show: false
},
splitLine: {
show: false
},
gridIndex: 2,
}
],
yAxis: [
{
type: 'value',
gridIndex: 0,
name: '占总百分比'
},
{
type: 'value',
gridIndex: 1,
name: '数量'
},
{
type: 'value',
gridIndex: 2,
name: '价格'
}
],
series: [
{
name: 'CDF 指数',
type: 'line',
data: data,
// symbol: 'none',
xAxisIndex: 0,
yAxisIndex: 0
},
{
name: '普通统计 指数',
type: 'bar',
data: PRICE_COUNT.y,
xAxisIndex: 1,
yAxisIndex: 1
},
{
name:'四分位 指数',
type: 'boxplot',
data: [ [0.0, 20.0, 45.0, 95.0, 200.0] ],
xAxisIndex: 2,
yAxisIndex: 2
}
],
}
chart.setOption(option)
}
/** 各年份的 各 类别发布量 */
function echart_6() {
let el = 'echart-6'
let chart = echarts.init(document.getElementById(el))
let option = {
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {},
title: {
left: '10%',
text: '各主题课程最近几年的发布量'
},
xAxis: [
{
type: 'value',
name: '发布量'
},
],
yAxis: [
{
type: 'category',
data: SUBJECT_YEAR_COUNT.year,
name: '主题'
},
],
series: [
{
name: "Web Development",
type: 'bar',
stack: '总量',
data: SUBJECT_YEAR_COUNT["Web Development"],
label: {
show: true,
position: 'insideRight'
}
},
{
name: "Business Finance",
type: 'bar',
stack: '总量',
data: SUBJECT_YEAR_COUNT["Business Finance"] ,
label: {
show: true,
position: 'insideRight'
},
},
{
name: "Graphic Design",
type: 'bar',
stack: '总量',
data: SUBJECT_YEAR_COUNT["Graphic Design"],
label: {
show: true,
position: 'insideRight'
},
},
{
name: "Musical Instruments",
type: 'bar',
stack: '总量',
data: SUBJECT_YEAR_COUNT["Musical Instruments"],
label: {
show: true,
position: 'insideRight'
},
},
],
}
chart.setOption(option)
}
function create_wordclound(el, title, data){
let chart = echarts.init(document.getElementById(el))
let option = {
title: {
left: 'center',
text: title,
},
series: [
{
type: 'wordCloud',
shape: 'circle',
// maskImage: maskImage,
left: 'center',
top: 'center',
width: '70%',
height: '85%',
sizeRange: [12, 60],
rotationRange: [-90, 90],
rotationStep: 45,
gridSize: 8,
drawOutOfBound: false,
textStyle: {
normal: {
fontFamily: 'sans-serif',
fontWeight: 'bold',
// Color can be a callback function or a color string
color: function () {
// Random color
return 'rgb(' + [
Math.round(Math.random() * 160),
Math.round(Math.random() * 160),
Math.round(Math.random() * 160)
].join(',') + ')';
}
},
emphasis: {
shadowBlur: 10,
shadowColor: '#333'
}
},
data: data
},
],
}
chart.setOption(option)
}
/** 各课程类别的 课程 关键字云图 */
function echart_7() {
create_wordclound('echart-7-1', 'Web Development 主题的关键字分布', SUBJECT_WORD_COUNT["Web Development"])
create_wordclound('echart-7-2', 'Business Finance 主题的关键字分布', SUBJECT_WORD_COUNT["Business Finance"])
create_wordclound('echart-7-3', 'Graphic Design 主题的关键字分布', SUBJECT_WORD_COUNT["Graphic Design"])
create_wordclound('echart-7-4', 'Musical Instruments 主题的关键字分布', SUBJECT_WORD_COUNT["Musical Instruments"])
}
function initAllCharts() {
echart_1()
echart_2()
echart_3()
echart_4()
echart_5()
echart_6()
echart_7()
}
initAllCharts()
/** 数据 */
const NUM_IS_PAID = {
columns: ['true', 'false'],
values: [
[3544, 600]
]
}
const SUBJECT_PRICE_COUNT = { "Business Finance": [96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, 0, 0, 0, 54, 0, 0, 0, 0, 49, 0, 0, 0, 0, 29, 0, 0, 0, 0, 50, 0, 0, 0, 0, 23, 0, 0, 0, 0, 163, 0, 0, 0, 0, 7, 0, 0, 0, 0, 33, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 19, 0, 0, 0, 0, 6, 0, 0, 0, 0, 6, 0, 0, 0, 0, 8, 0, 0, 0, 0, 52, 0, 0, 0, 0, 27, 0, 0, 0, 0, 5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 0, 0, 0, 9, 0, 0, 0, 0, 13, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 9, 0, 0, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 10, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 33, 0, 0, 0, 0, 128], "Graphic Design": [35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 36, 0, 0, 0, 0, 44, 0, 0, 0, 0, 20, 0, 0, 0, 0, 26, 0, 0, 0, 0, 14, 0, 0, 0, 0, 41, 0, 0, 0, 0, 5, 0, 0, 0, 0, 4, 0, 0, 0, 0, 6, 0, 0, 0, 0, 6, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 23, 0, 0, 0, 0, 23, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 17, 0, 0, 0, 0, 35], "Musical Instruments": [46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 29, 0, 0, 0, 0, 30, 0, 0, 0, 0, 33, 0, 0, 0, 0, 78, 0, 0, 0, 0, 23, 0, 0, 0, 0, 143, 0, 0, 0, 0, 11, 0, 0, 0, 0, 13, 0, 0, 0, 0, 7, 0, 0, 0, 0, 10, 0, 0, 0, 0, 15, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 22, 0, 0, 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 19], "Web Development": [133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 35, 0, 0, 0, 0, 43, 0, 0, 0, 0, 34, 0, 0, 0, 0, 63, 0, 0, 0, 0, 23, 0, 0, 0, 0, 121, 0, 0, 0, 0, 12, 0, 0, 0, 0, 25, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 0, 0, 0, 0, 39, 0, 0, 0, 0, 11, 0, 0, 0, 0, 14, 0, 0, 0, 0, 6, 0, 0, 0, 0, 55, 0, 0, 0, 0, 67, 0, 0, 0, 0, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 20, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 0, 0, 0, 14, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 72, 0, 0, 0, 0, 113], "price": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200] }
const SUBJECT_PRICE_COUNT_ARRAY = [[0, 0, 96], [0, 1, 0], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 0], [0, 12, 0], [0, 13, 0], [0, 14, 0], [0, 15, 0], [0, 16, 0], [0, 17, 0], [0, 18, 0], [0, 19, 0], [0, 20, 299], [0, 21, 0], [0, 22, 0], [0, 23, 0], [0, 24, 0], [0, 25, 54], [0, 26, 0], [0, 27, 0], [0, 28, 0], [0, 29, 0], [0, 30, 49], [0, 31, 0], [0, 32, 0], [0, 33, 0], [0, 34, 0], [0, 35, 29], [0, 36, 0], [0, 37, 0], [0, 38, 0], [0, 39, 0], [0, 40, 50], [0, 41, 0], [0, 42, 0], [0, 43, 0], [0, 44, 0], [0, 45, 23], [0, 46, 0], [0, 47, 0], [0, 48, 0], [0, 49, 0], [0, 50, 163], [0, 51, 0], [0, 52, 0], [0, 53, 0], [0, 54, 0], [0, 55, 7], [0, 56, 0], [0, 57, 0], [0, 58, 0], [0, 59, 0], [0, 60, 33], [0, 61, 0], [0, 62, 0], [0, 63, 0], [0, 64, 0], [0, 65, 4], [0, 66, 0], [0, 67, 0], [0, 68, 0], [0, 69, 0], [0, 70, 4], [0, 71, 0], [0, 72, 0], [0, 73, 0], [0, 74, 0], [0, 75, 19], [0, 76, 0], [0, 77, 0], [0, 78, 0], [0, 79, 0], [0, 80, 6], [0, 81, 0], [0, 82, 0], [0, 83, 0], [0, 84, 0], [0, 85, 6], [0, 86, 0], [0, 87, 0], [0, 88, 0], [0, 89, 0], [0, 90, 8], [0, 91, 0], [0, 92, 0], [0, 93, 0], [0, 94, 0], [0, 95, 52], [0, 96, 0], [0, 97, 0], [0, 98, 0], [0, 99, 0], [0, 100, 27], [0, 101, 0], [0, 102, 0], [0, 103, 0], [0, 104, 0], [0, 105, 5], [0, 106, 0], [0, 107, 0], [0, 108, 0], [0, 109, 0], [0, 110, 1], [0, 111, 0], [0, 112, 0], [0, 113, 0], [0, 114, 0], [0, 115, 5], [0, 116, 0], [0, 117, 0], [0, 118, 0], [0, 119, 0], [0, 120, 9], [0, 121, 0], [0, 122, 0], [0, 123, 0], [0, 124, 0], [0, 125, 13], [0, 126, 0], [0, 127, 0], [0, 128, 0], [0, 129, 0], [0, 130, 2], [0, 131, 0], [0, 132, 0], [0, 133, 0], [0, 134, 0], [0, 135, 1], [0, 136, 0], [0, 137, 0], [0, 138, 0], [0, 139, 0], [0, 140, 4], [0, 141, 0], [0, 142, 0], [0, 143, 0], [0, 144, 0], [0, 145, 9], [0, 146, 0], [0, 147, 0], [0, 148, 0], [0, 149, 0], [0, 150, 32], [0, 151, 0], [0, 152, 0], [0, 153, 0], [0, 154, 0], [0, 155, 1], [0, 156, 0], [0, 157, 0], [0, 158, 0], [0, 159, 0], [0, 160, 3], [0, 161, 0], [0, 162, 0], [0, 163, 0], [0, 164, 0], [0, 165, 1], [0, 166, 0], [0, 167, 0], [0, 168, 0], [0, 169, 0], [0, 170, 2], [0, 171, 0], [0, 172, 0], [0, 173, 0], [0, 174, 0], [0, 175, 2], [0, 176, 0], [0, 177, 0], [0, 178, 0], [0, 179, 0], [0, 180, 10], [0, 181, 0], [0, 182, 0], [0, 183, 0], [0, 184, 0], [0, 185, 2], [0, 186, 0], [0, 187, 0], [0, 188, 0], [0, 189, 0], [0, 190, 3], [0, 191, 0], [0, 192, 0], [0, 193, 0], [0, 194, 0], [0, 195, 33], [0, 196, 0], [0, 197, 0], [0, 198, 0], [0, 199, 0], [0, 200, 128], [1, 0, 35], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 0], [1, 11, 0], [1, 12, 0], [1, 13, 0], [1, 14, 0], [1, 15, 0], [1, 16, 0], [1, 17, 0], [1, 18, 0], [1, 19, 0], [1, 20, 203], [1, 21, 0], [1, 22, 0], [1, 23, 0], [1, 24, 0], [1, 25, 36], [1, 26, 0], [1, 27, 0], [1, 28, 0], [1, 29, 0], [1, 30, 44], [1, 31, 0], [1, 32, 0], [1, 33, 0], [1, 34, 0], [1, 35, 20], [1, 36, 0], [1, 37, 0], [1, 38, 0], [1, 39, 0], [1, 40, 26], [1, 41, 0], [1, 42, 0], [1, 43, 0], [1, 44, 0], [1, 45, 14], [1, 46, 0], [1, 47, 0], [1, 48, 0], [1, 49, 0], [1, 50, 41], [1, 51, 0], [1, 52, 0], [1, 53, 0], [1, 54, 0], [1, 55, 5], [1, 56, 0], [1, 57, 0], [1, 58, 0], [1, 59, 0], [1, 60, 4], [1, 61, 0], [1, 62, 0], [1, 63, 0], [1, 64, 0], [1, 65, 6], [1, 66, 0], [1, 67, 0], [1, 68, 0], [1, 69, 0], [1, 70, 6], [1, 71, 0], [1, 72, 0], [1, 73, 0], [1, 74, 0], [1, 75, 8], [1, 76, 0], [1, 77, 0], [1, 78, 0], [1, 79, 0], [1, 80, 6], [1, 81, 0], [1, 82, 0], [1, 83, 0], [1, 84, 0], [1, 85, 4], [1, 86, 0], [1, 87, 0], [1, 88, 0], [1, 89, 0], [1, 90, 4], [1, 91, 0], [1, 92, 0], [1, 93, 0], [1, 94, 0], [1, 95, 23], [1, 96, 0], [1, 97, 0], [1, 98, 0], [1, 99, 0], [1, 100, 23], [1, 101, 0], [1, 102, 0], [1, 103, 0], [1, 104, 0], [1, 105, 3], [1, 106, 0], [1, 107, 0], [1, 108, 0], [1, 109, 0], [1, 110, 0], [1, 111, 0], [1, 112, 0], [1, 113, 0], [1, 114, 0], [1, 115, 1], [1, 116, 0], [1, 117, 0], [1, 118, 0], [1, 119, 0], [1, 120, 4], [1, 121, 0], [1, 122, 0], [1, 123, 0], [1, 124, 0], [1, 125, 3], [1, 126, 0], [1, 127, 0], [1, 128, 0], [1, 129, 0], [1, 130, 0], [1, 131, 0], [1, 132, 0], [1, 133, 0], [1, 134, 0], [1, 135, 4], [1, 136, 0], [1, 137, 0], [1, 138, 0], [1, 139, 0], [1, 140, 1], [1, 141, 0], [1, 142, 0], [1, 143, 0], [1, 144, 0], [1, 145, 2], [1, 146, 0], [1, 147, 0], [1, 148, 0], [1, 149, 0], [1, 150, 15], [1, 151, 0], [1, 152, 0], [1, 153, 0], [1, 154, 0], [1, 155, 1], [1, 156, 0], [1, 157, 0], [1, 158, 0], [1, 159, 0], [1, 160, 0], [1, 161, 0], [1, 162, 0], [1, 163, 0], [1, 164, 0], [1, 165, 2], [1, 166, 0], [1, 167, 0], [1, 168, 0], [1, 169, 0], [1, 170, 0], [1, 171, 0], [1, 172, 0], [1, 173, 0], [1, 174, 0], [1, 175, 1], [1, 176, 0], [1, 177, 0], [1, 178, 0], [1, 179, 0], [1, 180, 3], [1, 181, 0], [1, 182, 0], [1, 183, 0], [1, 184, 0], [1, 185, 2], [1, 186, 0], [1, 187, 0], [1, 188, 0], [1, 189, 0], [1, 190, 1], [1, 191, 0], [1, 192, 0], [1, 193, 0], [1, 194, 0], [1, 195, 17], [1, 196, 0], [1, 197, 0], [1, 198, 0], [1, 199, 0], [1, 200, 35], [2, 0, 46], [2, 1, 0], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 0], [2, 11, 0], [2, 12, 0], [2, 13, 0], [2, 14, 0], [2, 15, 0], [2, 16, 0], [2, 17, 0], [2, 18, 0], [2, 19, 0], [2, 20, 141], [2, 21, 0], [2, 22, 0], [2, 23, 0], [2, 24, 0], [2, 25, 29], [2, 26, 0], [2, 27, 0], [2, 28, 0], [2, 29, 0], [2, 30, 30], [2, 31, 0], [2, 32, 0], [2, 33, 0], [2, 34, 0], [2, 35, 33], [2, 36, 0], [2, 37, 0], [2, 38, 0], [2, 39, 0], [2, 40, 78], [2, 41, 0], [2, 42, 0], [2, 43, 0], [2, 44, 0], [2, 45, 23], [2, 46, 0], [2, 47, 0], [2, 48, 0], [2, 49, 0], [2, 50, 143], [2, 51, 0], [2, 52, 0], [2, 53, 0], [2, 54, 0], [2, 55, 11], [2, 56, 0], [2, 57, 0], [2, 58, 0], [2, 59, 0], [2, 60, 13], [2, 61, 0], [2, 62, 0], [2, 63, 0], [2, 64, 0], [2, 65, 7], [2, 66, 0], [2, 67, 0], [2, 68, 0], [2, 69, 0], [2, 70, 10], [2, 71, 0], [2, 72, 0], [2, 73, 0], [2, 74, 0], [2, 75, 15], [2, 76, 0], [2, 77, 0], [2, 78, 0], [2, 79, 0], [2, 80, 6], [2, 81, 0], [2, 82, 0], [2, 83, 0], [2, 84, 0], [2, 85, 7], [2, 86, 0], [2, 87, 0], [2, 88, 0], [2, 89, 0], [2, 90, 1], [2, 91, 0], [2, 92, 0], [2, 93, 0], [2, 94, 0], [2, 95, 22], [2, 96, 0], [2, 97, 0], [2, 98, 0], [2, 99, 0], [2, 100, 16], [2, 101, 0], [2, 102, 0], [2, 103, 0], [2, 104, 0], [2, 105, 1], [2, 106, 0], [2, 107, 0], [2, 108, 0], [2, 109, 0], [2, 110, 0], [2, 111, 0], [2, 112, 0], [2, 113, 0], [2, 114, 0], [2, 115, 3], [2, 116, 0], [2, 117, 0], [2, 118, 0], [2, 119, 0], [2, 120, 4], [2, 121, 0], [2, 122, 0], [2, 123, 0], [2, 124, 0], [2, 125, 2], [2, 126, 0], [2, 127, 0], [2, 128, 0], [2, 129, 0], [2, 130, 1], [2, 131, 0], [2, 132, 0], [2, 133, 0], [2, 134, 0], [2, 135, 2], [2, 136, 0], [2, 137, 0], [2, 138, 0], [2, 139, 0], [2, 140, 0], [2, 141, 0], [2, 142, 0], [2, 143, 0], [2, 144, 0], [2, 145, 2], [2, 146, 0], [2, 147, 0], [2, 148, 0], [2, 149, 0], [2, 150, 5], [2, 151, 0], [2, 152, 0], [2, 153, 0], [2, 154, 0], [2, 155, 0], [2, 156, 0], [2, 157, 0], [2, 158, 0], [2, 159, 0], [2, 160, 0], [2, 161, 0], [2, 162, 0], [2, 163, 0], [2, 164, 0], [2, 165, 0], [2, 166, 0], [2, 167, 0], [2, 168, 0], [2, 169, 0], [2, 170, 1], [2, 171, 0], [2, 172, 0], [2, 173, 0], [2, 174, 0], [2, 175, 2], [2, 176, 0], [2, 177, 0], [2, 178, 0], [2, 179, 0], [2, 180, 2], [2, 181, 0], [2, 182, 0], [2, 183, 0], [2, 184, 0], [2, 185, 0], [2, 186, 0], [2, 187, 0], [2, 188, 0], [2, 189, 0], [2, 190, 0], [2, 191, 0], [2, 192, 0], [2, 193, 0], [2, 194, 0], [2, 195, 5], [2, 196, 0], [2, 197, 0], [2, 198, 0], [2, 199, 0], [2, 200, 19], [3, 0, 133], [3, 1, 0], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0], [3, 8, 0], [3, 9, 0], [3, 10, 0], [3, 11, 0], [3, 12, 0], [3, 13, 0], [3, 14, 0], [3, 15, 0], [3, 16, 0], [3, 17, 0], [3, 18, 0], [3, 19, 0], [3, 20, 187], [3, 21, 0], [3, 22, 0], [3, 23, 0], [3, 24, 0], [3, 25, 35], [3, 26, 0], [3, 27, 0], [3, 28, 0], [3, 29, 0], [3, 30, 43], [3, 31, 0], [3, 32, 0], [3, 33, 0], [3, 34, 0], [3, 35, 34], [3, 36, 0], [3, 37, 0], [3, 38, 0], [3, 39, 0], [3, 40, 63], [3, 41, 0], [3, 42, 0], [3, 43, 0], [3, 44, 0], [3, 45, 23], [3, 46, 0], [3, 47, 0], [3, 48, 0], [3, 49, 0], [3, 50, 121], [3, 51, 0], [3, 52, 0], [3, 53, 0], [3, 54, 0], [3, 55, 12], [3, 56, 0], [3, 57, 0], [3, 58, 0], [3, 59, 0], [3, 60, 25], [3, 61, 0], [3, 62, 0], [3, 63, 0], [3, 64, 0], [3, 65, 13], [3, 66, 0], [3, 67, 0], [3, 68, 0], [3, 69, 0], [3, 70, 6], [3, 71, 0], [3, 72, 0], [3, 73, 0], [3, 74, 0], [3, 75, 39], [3, 76, 0], [3, 77, 0], [3, 78, 0], [3, 79, 0], [3, 80, 11], [3, 81, 0], [3, 82, 0], [3, 83, 0], [3, 84, 0], [3, 85, 14], [3, 86, 0], [3, 87, 0], [3, 88, 0], [3, 89, 0], [3, 90, 6], [3, 91, 0], [3, 92, 0], [3, 93, 0], [3, 94, 0], [3, 95, 55], [3, 96, 0], [3, 97, 0], [3, 98, 0], [3, 99, 0], [3, 100, 67], [3, 101, 0], [3, 102, 0], [3, 103, 0], [3, 104, 0], [3, 105, 2], [3, 106, 0], [3, 107, 0], [3, 108, 0], [3, 109, 0], [3, 110, 7], [3, 111, 0], [3, 112, 0], [3, 113, 0], [3, 114, 0], [3, 115, 7], [3, 116, 0], [3, 117, 0], [3, 118, 0], [3, 119, 0], [3, 120, 20], [3, 121, 0], [3, 122, 0], [3, 123, 0], [3, 124, 0], [3, 125, 12], [3, 126, 0], [3, 127, 0], [3, 128, 0], [3, 129, 0], [3, 130, 0], [3, 131, 0], [3, 132, 0], [3, 133, 0], [3, 134, 0], [3, 135, 1], [3, 136, 0], [3, 137, 0], [3, 138, 0], [3, 139, 0], [3, 140, 5], [3, 141, 0], [3, 142, 0], [3, 143, 0], [3, 144, 0], [3, 145, 14], [3, 146, 0], [3, 147, 0], [3, 148, 0], [3, 149, 0], [3, 150, 36], [3, 151, 0], [3, 152, 0], [3, 153, 0], [3, 154, 0], [3, 155, 0], [3, 156, 0], [3, 157, 0], [3, 158, 0], [3, 159, 0], [3, 160, 1], [3, 161, 0], [3, 162, 0], [3, 163, 0], [3, 164, 0], [3, 165, 3], [3, 166, 0], [3, 167, 0], [3, 168, 0], [3, 169, 0], [3, 170, 2], [3, 171, 0], [3, 172, 0], [3, 173, 0], [3, 174, 0], [3, 175, 8], [3, 176, 0], [3, 177, 0], [3, 178, 0], [3, 179, 0], [3, 180, 2], [3, 181, 0], [3, 182, 0], [3, 183, 0], [3, 184, 0], [3, 185, 2], [3, 186, 0], [3, 187, 0], [3, 188, 0], [3, 189, 0], [3, 190, 6], [3, 191, 0], [3, 192, 0], [3, 193, 0], [3, 194, 0], [3, 195, 72], [3, 196, 0], [3, 197, 0], [3, 198, 0], [3, 199, 0], [3, 200, 113]]
const SUBJECTS = ['Business Finance', 'Graphic Design', 'Musical Instruments', 'Web Development']
const PRICE_CDF = {
'x': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 110, 110, 110, 110, 110, 110, 110, 110, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 130, 130, 130, 135, 135, 135, 135, 135, 135, 135, 135, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 155, 155, 160, 160, 160, 160, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 185, 185, 185, 185, 185, 185, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200],
'y': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.17, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.19, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.27, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.36, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.37, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.39, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.43, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.44, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.46, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.47, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.49, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.51, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.53, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.55, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.56, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.57, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.61, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.62, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.63, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.65, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.68, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.69, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.71, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.72, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.74, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.76, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.77, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.81, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.82, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.84, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.86, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.87, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.89, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.91, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.92, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.93, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.94, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
}
const PRICE_COUNT = {
x: ['0-25', '25-50', '50-75', '75-100', '100-125', '125-150', '150-175', '175-200'],
y: [984, 1050, 247, 364, 102, 136, 30, 455]
}
const SUBJECT_YEAR_COUNT = { 'Business Finance': [0, 6, 84, 192, 339, 349, 225], 'Graphic Design': [0, 10, 23, 66, 168, 181, 155], 'Musical Instruments': [0, 10, 39, 120, 171, 228, 112], 'Web Development': [5, 19, 56, 113, 336, 448, 223], 'year': [2011, 2012, 2013, 2014, 2015, 2016, 2017] }
const SUBJECT_WORD_COUNT = {
'Business Finance': [{ 'name': 'Trading', 'value': 254 },
{ 'name': 'Forex', 'value': 148 },
{ 'name': 'Financial', 'value': 138 },
{ 'name': 'Accounting', 'value': 101 },
{ 'name': 'Options', 'value': 97 },
{ 'name': 'How', 'value': 95 },
{ 'name': 'Learn', 'value': 87 },
{ 'name': 'Analysis', 'value': 64 },
{ 'name': 'Trade', 'value': 64 },
{ 'name': 'Stock', 'value': 64 },
{ 'name': 'A', 'value': 58 },
{ 'name': 'Complete', 'value': 52 },
{ 'name': 'Course', 'value': 51 },
{ 'name': 'Your', 'value': 50 },
{ 'name': 'To', 'value': 46 },
{ 'name': 'Market', 'value': 46 },
{ 'name': 'Introduction', 'value': 43 },
{ 'name': 'Stocks', 'value': 43 },
{ 'name': 'For', 'value': 43 },
{ 'name': 'Business', 'value': 41 },
{ 'name': 'Investing', 'value': 41 },
{ 'name': 'Guide', 'value': 40 },
{ 'name': 'Finance', 'value': 39 },
{ 'name': 'Beginners', 'value': 39 },
{ 'name': 'Basics', 'value': 39 },
{ 'name': 'Level', 'value': 37 },
{ 'name': 'CFA', 'value': 37 },
{ 'name': 'de', 'value': 31 },
{ 'name': 'Management', 'value': 30 },
{ 'name': 'Technical', 'value': 29 },
{ 'name': 'In', 'value': 27 },
{ 'name': 'trading', 'value': 26 },
{ 'name': 'Bitcoin', 'value': 25 },
{ 'name': 'Bookkeeping', 'value': 25 },
{ 'name': 'I', 'value': 25 },
{ 'name': 'Excel', 'value': 25 },
{ 'name': 'Build', 'value': 23 },
{ 'name': 'Strategy', 'value': 23 },
{ 'name': '1', 'value': 23 },
{ 'name': 'Advanced', 'value': 22 },
{ 'name': 'Easy', 'value': 21 },
{ 'name': 'Investment', 'value': 21 },
{ 'name': 'Modeling', 'value': 20 },
{ 'name': 'Professional', 'value': 19 },
{ 'name': 'Capital', 'value': 18 },
{ 'name': 'Statements', 'value': 18 },
{ 'name': 'Tax', 'value': 18 },
{ 'name': 'Day', 'value': 17 },
{ 'name': 'CA', 'value': 17 },
{ 'name': 'Strategies', 'value': 17 },
{ 'name': 'You', 'value': 17 },
{ 'name': 'Master', 'value': 16 },
{ 'name': 'Binary', 'value': 16 },
{ 'name': 'Futures', 'value': 16 },
{ 'name': 'en', 'value': 16 },
{ 'name': 'Option', 'value': 16 },
{ 'name': 'Trader', 'value': 16 },
{ 'name': 'With', 'value': 16 },
{ 'name': 'Robot', 'value': 15 },
{ 'name': '2', 'value': 15 },
{ 'name': 'Get', 'value': 15 },
{ 'name': 'Profit', 'value': 14 },
{ 'name': 'Statement', 'value': 14 },
{ 'name': 'Study', 'value': 14 },
{ 'name': 'Fundamentals', 'value': 13 },
{ 'name': 'Simple', 'value': 13 },
{ 'name': 'para', 'value': 13 },
{ 'name': '2017', 'value': 13 },
{ 'name': 'Basic', 'value': 13 },
{ 'name': 'Made', 'value': 12 },
{ 'name': 'From', 'value': 12 },
{ 'name': 'Cost', 'value': 12 },
{ 'name': 'System', 'value': 12 },
{ 'name': 'Beginner', 'value': 12 },
{ 'name': 'Training', 'value': 12 },
{ 'name': 'Start', 'value': 12 },
{ 'name': 'Small', 'value': 12 },
{ 'name': 'Markets', 'value': 12 },
{ 'name': 'Patterns', 'value': 12 },
{ 'name': 'Invest', 'value': 12 },
{ 'name': 'Using', 'value': 12 },
{ 'name': 'Corporate', 'value': 11 },
{ 'name': 'Equity', 'value': 11 },
{ 'name': 'Fund', 'value': 11 },
{ 'name': 'Step', 'value': 11 },
{ 'name': 'Credit', 'value': 11 },
{ 'name': 'Steps', 'value': 11 },
{ 'name': 'Exams', 'value': 11 },
{ 'name': 'Valuation', 'value': 11 },
{ 'name': 'Part', 'value': 11 },
{ 'name': 'Risk', 'value': 11 },
{ 'name': '101', 'value': 10 },
{ 'name': 'Understanding', 'value': 10 },
{ 'name': 'Value', 'value': 10 },
{ 'name': 'Of', 'value': 10 },
{ 'name': 'An', 'value': 10 },
{ 'name': 'trade', 'value': 10 },
{ 'name': 'Hedge', 'value': 10 },
{ 'name': 'Comprehensive', 'value': 10 },
{ 'name': 'Portfolio', 'value': 10 }],
'Graphic Design': [{ 'name': 'Photoshop', 'value': 144 },
{ 'name': 'Design', 'value': 144 },
{ 'name': 'Adobe', 'value': 97 },
{ 'name': 'Illustrator', 'value': 82 },
{ 'name': 'Learn', 'value': 63 },
{ 'name': 'How', 'value': 51 },
{ 'name': 'Logo', 'value': 50 },
{ 'name': 'CC', 'value': 47 },
{ 'name': 'Create', 'value': 43 },
{ 'name': 'Graphic', 'value': 36 },
{ 'name': 'de', 'value': 33 },
{ 'name': 'Beginners', 'value': 24 },
{ 'name': 'Drawing', 'value': 23 },
{ 'name': 'Guide', 'value': 22 },
{ 'name': 'To', 'value': 22 },
{ 'name': 'Draw', 'value': 21 },
{ 'name': 'From', 'value': 20 },
{ 'name': 'With', 'value': 19 },
{ 'name': 'A', 'value': 18 },
{ 'name': 'Make', 'value': 17 },
{ 'name': 'Professional', 'value': 17 },
{ 'name': 'Mastering', 'value': 16 },
{ 'name': 'Course', 'value': 16 },
{ 'name': 'Canva', 'value': 15 },
{ 'name': 'Graphics', 'value': 14 },
{ 'name': 'Art', 'value': 14 },
{ 'name': 'para', 'value': 14 },
{ 'name': 'Your', 'value': 13 },
{ 'name': 'App', 'value': 13 },
{ 'name': 'InDesign', 'value': 13 },
{ 'name': 'Vector', 'value': 12 },
{ 'name': 'Digital', 'value': 12 },
{ 'name': 'For', 'value': 12 },
{ 'name': 'Master', 'value': 12 },
{ 'name': 'Creating', 'value': 12 },
{ 'name': 'Corel', 'value': 11 },
{ 'name': 'Beginner', 'value': 11 },
{ 'name': 'Complete', 'value': 11 },
{ 'name': 'Designer', 'value': 11 },
{ 'name': 'Easy', 'value': 11 },
{ 'name': 'con', 'value': 11 },
{ 'name': 'design', 'value': 10 },
{ 'name': 'Flat', 'value': 10 },
{ 'name': 'Cover', 'value': 10 },
{ 'name': 'Typography', 'value': 10 },
{ 'name': 'Business', 'value': 10 },
{ 'name': '1', 'value': 10 },
{ 'name': 'create', 'value': 10 },
{ 'name': 'Become', 'value': 9 },
{ 'name': 'en', 'value': 9 },
{ 'name': 'Book', 'value': 9 },
{ 'name': '3D', 'value': 9 },
{ 'name': 'Scratch', 'value': 9 },
{ 'name': 'Advanced', 'value': 9 },
{ 'name': 'Designs', 'value': 9 },
{ 'name': 'Curso', 'value': 8 },
{ 'name': 'After', 'value': 8 },
{ 'name': 'Web', 'value': 8 },
{ 'name': 'logo', 'value': 8 },
{ 'name': 'Training', 'value': 8 },
{ 'name': 'Skills', 'value': 8 },
{ 'name': 'Illustration', 'value': 8 },
{ 'name': 'Mobile', 'value': 8 },
{ 'name': 'professional', 'value': 7 },
{ 'name': 'Sketch', 'value': 7 },
{ 'name': 'Inkscape', 'value': 7 },
{ 'name': 'Photo', 'value': 7 },
{ 'name': 'Images', 'value': 7 },
{ 'name': 'Essential', 'value': 7 },
{ 'name': 'Figure', 'value': 7 },
{ 'name': 'Basics', 'value': 7 },
{ 'name': 'Quick', 'value': 7 },
{ 'name': 'Designers', 'value': 7 },
{ 'name': 'com', 'value': 7 },
{ 'name': 'Using', 'value': 7 },
{ 'name': 'Essentials', 'value': 7 },
{ 'name': 'Projects', 'value': 7 },
{ 'name': 'CS6', 'value': 7 },
{ 'name': 'Logos', 'value': 7 },
{ 'name': 'Icon', 'value': 7 },
{ 'name': 'Covers', 'value': 7 },
{ 'name': 'In', 'value': 6 },
{ 'name': 'Diseño', 'value': 6 },
{ 'name': 'Expert', 'value': 6 },
{ 'name': 'Painting', 'value': 6 },
{ 'name': 'Start', 'value': 6 },
{ 'name': 'Pro', 'value': 6 },
{ 'name': '30', 'value': 6 },
{ 'name': 'Designing', 'value': 6 },
{ 'name': 'Character', 'value': 6 },
{ 'name': 'Tools', 'value': 6 },
{ 'name': 'Hour', 'value': 6 },
{ 'name': 'PowerPoint', 'value': 6 },
{ 'name': 'eBook', 'value': 6 },
{ 'name': '3', 'value': 6 },
{ 'name': 'Simple', 'value': 6 },
{ 'name': 'photoshop', 'value': 6 },
{ 'name': 'Techniques', 'value': 6 },
{ 'name': 'Como', 'value': 6 },
{ 'name': 'Cartoon', 'value': 6 }],
'Musical Instruments': [{ 'name': 'Guitar', 'value': 193 },
{ 'name': 'Piano', 'value': 161 },
{ 'name': 'Learn', 'value': 129 },
{ 'name': 'Play', 'value': 96 },
{ 'name': 'Lessons', 'value': 69 },
{ 'name': 'play', 'value': 61 },
{ 'name': 'Beginner', 'value': 52 },
{ 'name': 'Harmonica', 'value': 49 },
{ 'name': 'Instant', 'value': 48 },
{ 'name': 'Beginners', 'value': 45 },
{ 'name': 'Blues', 'value': 44 },
{ 'name': 'Course', 'value': 38 },
{ 'name': 'Aprende', 'value': 36 },
{ 'name': 'To', 'value': 36 },
{ 'name': 'Master', 'value': 35 },
{ 'name': 'de', 'value': 32 },
{ 'name': 'tocar', 'value': 31 },
{ 'name': 'How', 'value': 31 },
{ 'name': 'For', 'value': 30 },
{ 'name': '1', 'value': 29 },
{ 'name': 'Pro', 'value': 26 },
{ 'name': '2', 'value': 23 },
{ 'name': 'With', 'value': 22 },
{ 'name': 'Music', 'value': 21 },
{ 'name': 'Easy', 'value': 21 },
{ 'name': 'Chords', 'value': 21 },
{ 'name': 'el', 'value': 20 },
{ 'name': 'Advanced', 'value': 18 },
{ 'name': 'Level', 'value': 18 },
{ 'name': 'A', 'value': 17 },
{ 'name': 'Essentials', 'value': 16 },
{ 'name': 'Drum', 'value': 16 },
{ 'name': 'Rock', 'value': 16 },
{ 'name': 'la', 'value': 15 },
{ 'name': 'Your', 'value': 15 },
{ 'name': 'piano', 'value': 15 },
{ 'name': 'Playing', 'value': 14 },
{ 'name': 'Chord', 'value': 14 },
{ 'name': 'Rhythm', 'value': 14 },
{ 'name': 'Classical', 'value': 13 },
{ 'name': 'Curso', 'value': 13 },
{ 'name': 'Intermediate', 'value': 13 },
{ 'name': 'harmonica', 'value': 13 },
{ 'name': 'Jazz', 'value': 13 },
{ 'name': 'Acoustic', 'value': 13 },
{ 'name': 'en', 'value': 13 },
{ 'name': 'Ear', 'value': 12 },
{ 'name': 'Instruction', 'value': 12 },
{ 'name': 'Basics', 'value': 12 },
{ 'name': '3', 'value': 12 },
{ 'name': 'Fun', 'value': 12 },
{ 'name': 'Complete', 'value': 12 },
{ 'name': 'easy', 'value': 12 },
{ 'name': 'Techniques', 'value': 12 },
{ 'name': 'Made', 'value': 12 },
{ 'name': 'Runs', 'value': 11 },
{ 'name': 'love', 'value': 11 },
{ 'name': 'Scales', 'value': 11 },
{ 'name': 'Guide', 'value': 11 },
{ 'name': 'Start', 'value': 10 },
{ 'name': 'Part', 'value': 10 },
{ 'name': 'Studies', 'value': 10 },
{ 'name': 'Ukulele', 'value': 10 },
{ 'name': 'System', 'value': 10 },
{ 'name': 'Violin', 'value': 10 },
{ 'name': '12', 'value': 9 },
{ 'name': 'Trumpet', 'value': 9 },
{ 'name': 'Learning', 'value': 9 },
{ 'name': 'guitar', 'value': 9 },
{ 'name': 'Technique', 'value': 9 },
{ 'name': 'Way', 'value': 9 },
{ 'name': 'Flute', 'value': 9 },
{ 'name': 'Songs', 'value': 9 },
{ 'name': 'para', 'value': 9 },
{ 'name': 'Bass', 'value': 9 },
{ 'name': 'Series', 'value': 9 },
{ 'name': '5', 'value': 9 },
{ 'name': 'guitarra', 'value': 9 },
{ 'name': 'Step', 'value': 8 },
{ 'name': 'Bluegrass', 'value': 8 },
{ 'name': 'Improvise', 'value': 8 },
{ 'name': '4', 'value': 8 },
{ 'name': 'Guitarra', 'value': 8 },
{ 'name': 'By', 'value': 8 },
{ 'name': 'Hand', 'value': 8 },
{ 'name': 'Key', 'value': 8 },
{ 'name': 'Perform', 'value': 8 },
{ 'name': 'Building', 'value': 8 },
{ 'name': 'Under', 'value': 7 },
{ 'name': 'blues', 'value': 7 },
{ 'name': 'Strumming', 'value': 7 },
{ 'name': 'Electric', 'value': 7 },
{ 'name': 'learn', 'value': 7 },
{ 'name': 'Fundamentals', 'value': 7 },
{ 'name': 'You', 'value': 7 },
{ 'name': 'playing', 'value': 7 },
{ 'name': 'Three', 'value': 7 },
{ 'name': '30', 'value': 7 },
{ 'name': 'Webisodes', 'value': 7 },
{ 'name': 'From', 'value': 7 }],
'Web Development': [{ 'name': 'Learn', 'value': 212 },
{ 'name': 'Web', 'value': 197 },
{ 'name': 'Build', 'value': 132 },
{ 'name': 'JavaScript', 'value': 112 },
{ 'name': 'Website', 'value': 105 },
{ 'name': 'Complete', 'value': 105 },
{ 'name': 'HTML', 'value': 105 },
{ 'name': 'Development', 'value': 100 },
{ 'name': 'PHP', 'value': 95 },
{ 'name': 'Beginners', 'value': 93 },
{ 'name': 'Course', 'value': 88 },
{ 'name': 'CSS', 'value': 83 },
{ 'name': 'Create', 'value': 80 },
{ 'name': 'WordPress', 'value': 80 },
{ 'name': 'How', 'value': 65 },
{ 'name': 'Bootstrap', 'value': 63 },
{ 'name': 'From', 'value': 62 },
{ 'name': 'A', 'value': 59 },
{ 'name': 'HTML5', 'value': 58 },
{ 'name': 'Scratch', 'value': 58 },
{ 'name': 'Angular', 'value': 56 },
{ 'name': 'For', 'value': 54 },
{ 'name': 'Wordpress', 'value': 51 },
{ 'name': 'To', 'value': 49 },
{ 'name': 'Developer', 'value': 44 },
{ 'name': 'Building', 'value': 43 },
{ 'name': 'Beginner', 'value': 43 },
{ 'name': '2', 'value': 42 },
{ 'name': 'Your', 'value': 41 },
{ 'name': 'With', 'value': 41 },
{ 'name': 'Websites', 'value': 40 },
{ 'name': 'Guide', 'value': 39 },
{ 'name': 'jQuery', 'value': 37 },
{ 'name': '4', 'value': 37 },
{ 'name': 'Introduction', 'value': 36 },
{ 'name': 'beginners', 'value': 36 },
{ 'name': 'Responsive', 'value': 35 },
{ 'name': 'using', 'value': 33 },
{ 'name': 'CSS3', 'value': 32 },
{ 'name': 'Using', 'value': 32 },
{ 'name': 'Projects', 'value': 32 },
{ 'name': 'Apps', 'value': 30 },
{ 'name': 'Programming', 'value': 30 },
{ 'name': 'Tutorial', 'value': 28 },
{ 'name': 'Ruby', 'value': 28 },
{ 'name': 'Professional', 'value': 28 },
{ 'name': 'Rails', 'value': 27 },
{ 'name': 'Framework', 'value': 27 },
{ 'name': 'Design', 'value': 27 },
{ 'name': 'App', 'value': 27 },
{ 'name': 'Master', 'value': 27 },
{ 'name': 'Coding', 'value': 26 },
{ 'name': 'React', 'value': 26 },
{ 'name': 'Laravel', 'value': 25 },
{ 'name': 'Mastering', 'value': 25 },
{ 'name': 'Advanced', 'value': 24 },
{ 'name': '3', 'value': 24 },
{ 'name': 'JS', 'value': 23 },
{ 'name': 'Javascript', 'value': 23 },
{ 'name': 'AngularJS', 'value': 23 },
{ 'name': 'Developers', 'value': 23 },
{ 'name': '5', 'value': 22 },
{ 'name': 'By', 'value': 22 },
{ 'name': 'Spring', 'value': 21 },
{ 'name': 'Become', 'value': 21 },
{ 'name': 'scratch', 'value': 21 },
{ 'name': 'Ultimate', 'value': 20 },
{ 'name': 'Crash', 'value': 20 },
{ 'name': 'Make', 'value': 20 },
{ 'name': 'Code', 'value': 19 },
{ 'name': 'And', 'value': 19 },
{ 'name': 'Python', 'value': 18 },
{ 'name': 'MVC', 'value': 18 },
{ 'name': 'website', 'value': 17 },
{ 'name': 'Basics', 'value': 17 },
{ 'name': 'MySQL', 'value': 17 },
{ 'name': 'Learning', 'value': 17 },
{ 'name': 'Theme', 'value': 17 },
{ 'name': 'Fundamentals', 'value': 17 },
{ 'name': 'Own', 'value': 17 },
{ 'name': 'Modern', 'value': 17 },
{ 'name': 'Project', 'value': 16 },
{ 'name': 'Application', 'value': 16 },
{ 'name': '1', 'value': 16 },
{ 'name': 'Page', 'value': 16 },
{ 'name': 'create', 'value': 16 },
{ 'name': 'Basic', 'value': 16 },
{ 'name': 'web', 'value': 16 },
{ 'name': '2017', 'value': 15 },
{ 'name': 'JSON', 'value': 14 },
{ 'name': 'JQuery', 'value': 14 },
{ 'name': 'Django', 'value': 14 },
{ 'name': 'Expert', 'value': 13 },
{ 'name': 'Creating', 'value': 13 },
{ 'name': 'Easy', 'value': 13 },
{ 'name': 'API', 'value': 13 },
{ 'name': 'Absolute', 'value': 13 },
{ 'name': 'Start', 'value': 13 },
{ 'name': 'Stack', 'value': 12 },
{ 'name': 'Security', 'value': 12 }]
}
#!/usr/bin/env python
# coding: utf-8
# ## Loading DataSet and Getting Some informations about it
# In[4]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
import re
plt.style.use('bmh')
sns.set(style='darkgrid')
get_ipython().run_line_magic('matplotlib', 'inline')
# In[5]:
UDEMY_PATH = 'E:/学习资源/大三下-课程资料/数据可视化/大作业/input/udemy_courses.csv'
udemy_courses = pd.read_csv(UDEMY_PATH, parse_dates=['published_timestamp'])
udemy_courses.head(3)
# In[6]:
udemy_courses.info()
# ## Data Cleaning and Preparation for EDA
# In[7]:
# look like the data is clean enough,dont need to do any work.
# ## EDA
# ### Basic Knowledge EDA
#
# - How many Free Courses in the dataset, and Explore which Category has the most free courses
# - How many Paid Courses in the dataset, and Explore which Category has the most paid courses
# - Compare the Average number of subscribers between Paid and Free Courses
# - How many Free/Paid Courses in each Level
# - Explore the distribution of price column
# - Average Prices for each level (Paid Category)
# - Relation between number of lectures and price.
# - Explore content duration and content duration for each price category
# - Published Courses each year.
# In[8]:
udemy_courses['is_paid'].value_counts()
# In[9]:
udemy_courses[udemy_courses['is_paid'] == False ]['subject'].value_counts()
# In[10]:
g = sns.catplot(x='subject', data=udemy_courses, kind='count', hue='is_paid')
g.fig.suptitle('free/paid categories comparison', y=1.03)
plt.xticks(rotation=30)
plt.show()
# Web Development 类别拥有最多数量的免费课程
# Business Finance 类别拥有最多数量的付费课程
# In[11]:
pd.pivot_table(index='is_paid', values='num_subscribers', data=udemy_courses, aggfunc='mean')
# 免费课程的平均订阅数量多于付费课程的平均订阅数量,与我们预料的一样
# In[12]:
g = sns.catplot(x='level', data=udemy_courses, kind='count', hue='is_paid')
g.fig.suptitle('free/paid level comparison', y=1.03)
plt.xticks(rotation=30)
plt.show()
# In[13]:
# CDF, histogram, Box-plot,
def cdf(lst):
x = np.sort(lst)
y = np.arange(1, len(x) + 1) / len(x)
return x, y
fig, ax = plt.subplots(1, 3, figsize=(15,5))
x_price, y_price = cdf(udemy_courses['price'])
ax[0].plot(x_price, y_price)
ax[0].set_title('CDF of prices')
ax[1].hist(udemy_courses['price'])
ax[1].set_title('histogram distribution of prices')
ax[2].boxplot(udemy_courses['price'])
ax[2].set_title('boxplot of prices')
plt.show()
print('median: ', udemy_courses['price'].median())
print('mean', udemy_courses['price'].mean())
# In[14]:
udemy_courses[udemy_courses['is_paid'] == True].groupby('level')['price'] .mean().sort_values(ascending=False)
# In[15]:
price_category = []
for price in udemy_courses['price']:
if price == 0:
price_category.append('Free')
elif price > 0 and price <= 45:
price_category.append('cheap')
elif price > 45 and price <= 95:
price_category.append('expensive')
else:
price_category.append('very expensive')
udemy_courses['price_category'] = price_category
udemy_courses['price_category'].value_counts()
# In[16]:
# relation between number of lectures and price
udemy_courses.groupby('price_category')['num_lectures'] .mean().sort_values(ascending=False)
# In[17]:
year_counts = udemy_courses['published_timestamp'].dt.year.value_counts().plot.bar()
plt.xlabel('published year')
plt.ylabel('frequency')
plt.title('number of courses published each year(2011-2017)')
plt.show()
# In[18]:
udemy_courses['published_year'] = udemy_courses['published_timestamp'].dt.year
pd.pivot_table(index='published_year', columns='subject', values='course_id', data=udemy_courses, aggfunc='count', fill_value=0)
# ## Export to JSON that Be Use for Echarts
# In[19]:
import json
udemy_courses.head(3)
# In[20]:
# all data to json file
# udemy_courses.to_json('data/udemy_courses.json', orient='records', indent=4)
# In[21]:
# 免费/付费 课程数量
data = udemy_courses['is_paid'].value_counts()
print(data)
# 每门学科的课程 是否付费 数量
data = udemy_courses.groupby(['subject', 'is_paid']).count()['course_id']
print(data)
print(list(data.index.levels[0]))
print(list(data.index.levels[1]))
print('values of True: ', list(data[:,True] ))
print('values of False: ', list(data[:,False] ))
# In[22]:
# 各主题课程的价格分布
subjects = list( udemy_courses['subject'].unique() )
print('max price of udemy courses is {}'.format(udemy_courses['price'].max()))
subject_price_counts = {}
for subject in subjects:
prices = udemy_courses['price'][udemy_courses['subject'] == subject].values
prices = list(prices)
counts = pd.value_counts(prices).to_dict()
price_counts = [ counts.get(i, 0) for i in range(0, 201)]
print('\n price counts of {} subject are'.format(subject) )
print(price_counts[:10])
subject_price_counts[subject] = price_counts
# subject_price_counts['price'] = list(range(0, 201))
# print('\n ❤ json of subject-price-counts')
# print( json.dumps(subject_price_counts) )
print('\n ❤ narray about subject price counts')
narray = [] #[ [主题索引,价格,价格数量] ... ]
for k, v in subject_price_counts.items():
subject_index = subjects.index(k)
ls = [ [subject_index, i, value] for i, value in enumerate(v) if v != 0 ]
narray.extend(ls)
print(subjects)
print(narray[:10])
# In[23]:
# 各课程等级的课程 是否付费 数量
data = udemy_courses.groupby(['level', 'is_paid']).count()['course_id']
print(data)
print(list(data.index.levels[0]))
print(list(data.index.levels[1]))
print('values of True: ', list(data[:,True] ))
print('values of False: ', list(data[:,False] ))
# In[24]:
# CDF, histogram, Box-plot,
def cdf(lst):
x = np.sort(lst)
y = np.arange(1, len(x) + 1) / len(x)
return x, y
def init_cdf():
x_price, y_price = cdf(udemy_courses['price'])
x_price = list(x_price)
y_price = list( map(lambda x : round(x, 2), y_price) )
with open('data/output', 'w', encoding='utf-8') as f:
f.write( str(x_price))
f.write('\n\n')
f.write( str(y_price) )
print('已保存至文件 data/output')
print(x_price[:10])
print(y_price[:10])
# init_cdf()
def init_hist():
price = udemy_courses['price'].values
labels = ['0-25', '25-50', '50-75', '75-100', '100-125', '125-150', '150-175', '175-200']
price = pd.cut(price, bins=[0, 25,50,75,100,125,150,175,200], labels=labels)
price_count = pd.value_counts(price).sort_index()
print( list(price_count.index.values))
print(list(price_count))
# init_hist()
def init_quantitle():
price = udemy_courses['price']
data = price.quantile([0,0.25,0.5,0.75,1])
print(list(data))
# init_quantitle()
# In[25]:
# 各年份的 各 主题课程发布量
data = udemy_courses.groupby(['published_year', 'subject']).count()['course_id']
# data = data.sort_index(ascending=False, level=0)
print(data)
published_years = list(data.index.levels[0])
subjects = data.index.levels[1].values
print(published_years)
print(subjects)
subject_year_count = {}
for subject in subjects:
print(' {} value are'.format(subject))
ls = list(data[:, subject])
if len(ls) != len(published_years):
ls.insert(0,0)
print(ls)
subject_year_count[subject] = ls
subject_year_count['year'] = published_years
print(subject_year_count)
# print('values of True: ', list(data[:,True] ))
# print('values of False: ', list(data[:,False] ))
# In[26]:
# 各课程类别的 课程 关键字云图
import nltk
from nltk.corpus import stopwords
import functools
stop_words = stopwords.words('english')
stop_words.extend(['The', '-', '&'])
subject_word_count = {}
for subject in subjects:
print(' {} subject '.format(subject))
titles = udemy_courses['course_title'][ udemy_courses['subject'] == subject ]
titles = map(lambda s : s.split(), titles)
words = []
for title in titles:
words.extend(title)
words = list(filter(lambda s : s not in stop_words and s.isalnum(), words))
word_counts = pd.value_counts(words)[:100]
print(len(word_counts))
data = []
for k, v in word_counts.items():
data.append( {'name': k, 'value': v} )
subject_word_count[subject] = data
subject_word_count