-
Notifications
You must be signed in to change notification settings - Fork 0
/
d-rating-by-course.py
98 lines (87 loc) · 2.25 KB
/
d-rating-by-course.py
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
import justpy as jp
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
from pytz import utc
data=pd.read_csv('reviews.csv',parse_dates=['Timestamp'])
nrs = data.groupby(['Course Name'])['Rating'].count()
chart_def = """
{
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Browser market shares in January, 2018'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
name: 'Rating',
colorByPoint: true,
data: [{
name: 'Chrome',
y: 61.41,
sliced: true,
selected: true
}, {
name: 'Internet Explorer',
y: 11.84
}, {
name: 'Firefox',
y: 10.85
}, {
name: 'Edge',
y: 4.67
}, {
name: 'Safari',
y: 4.18
}, {
name: 'Sogou Explorer',
y: 1.64
}, {
name: 'Opera',
y: 1.6
}, {
name: 'QQ',
y: 1.2
}, {
name: 'Other',
y: 2.61
}]
}]
}
"""
def app():
# Creating a web page
wp = jp.QuasarPage()
# heading
h1 = jp.QDiv(a=wp, text='Analysis of Course Reviews',classes="text-h3 text-center text-weight-bold")
# Displaying the chart
hc = jp.HighCharts(a=wp,options=chart_def)
#title of the chart
hc.options.title.text = "Number of Rating by Course"
hc.options.subtitle.text = "According the provided dataset"
#taking the dataset from the given dataframe
hc_data = [{"name":v1,"y":v2}for v1,v2 in zip(nrs.index,nrs)]
hc.options.series[0].data = hc_data
return wp
jp.justpy(app)