Hello All,
I am trying to plot multiple lines on a chart using the following data and would be grateful for any assistance.
I have a set of daily counts of mobile app 1st open event by OS and Date with Daily Totals.
I would like to have 3 line plots on the same chart by day.
I have 2 lines appearing but the Date values are not appearing the right order on the X axis, I suspect they are beign treated as strings.
Happy to scrap my program completely if there is an easier way I suspect there will be
Thanks for helping a newbie
ANDROID,1-Nov-19,85
ANDROID,2-Nov-19,69
ANDROID,3-Nov-19,157
ANDROID,4-Nov-19,157
ANDROID,5-Nov-19,96
ANDROID,6-Nov-19,117
ANDROID,7-Nov-19,150
ANDROID,8-Nov-19,299
ANDROID,9-Nov-19,321
ANDROID,10-Nov-19,272
ANDROID,11-Nov-19,188
ANDROID,12-Nov-19,156
ANDROID,13-Nov-19,120
ANDROID,14-Nov-19,319
ANDROID,15-Nov-19,132
ANDROID,16-Nov-19,261
ANDROID,17-Nov-19,294
ANDROID,17-Oct-19,11
ANDROID,18-Nov-19,151
ANDROID,18-Oct-19,10
ANDROID,19-Nov-19,170
ANDROID,19-Oct-19,10
ANDROID,20-Nov-19,134
ANDROID,20-Oct-19,5
ANDROID,21-Nov-19,124
ANDROID,21-Oct-19,8
ANDROID,22-Nov-19,138
ANDROID,22-Oct-19,16
ANDROID,23-Nov-19,131
ANDROID,23-Oct-19,13
ANDROID,24-Nov-19,159
ANDROID,24-Oct-19,9
ANDROID,25-Oct-19,9
ANDROID,26-Oct-19,10
ANDROID,27-Oct-19,12
ANDROID,28-Oct-19,40
ANDROID,29-Oct-19,127
ANDROID,30-Oct-19,125
ANDROID,31-Oct-19,116
IOS,1-Nov-19,119
IOS,2-Nov-19,115
IOS,3-Nov-19,182
IOS,4-Nov-19,230
IOS,5-Nov-19,135
IOS,6-Nov-19,186
IOS,7-Nov-19,158
IOS,8-Nov-19,379
IOS,9-Nov-19,410
IOS,10-Nov-19,456
IOS,11-Nov-19,373
IOS,12-Nov-19,388
IOS,13-Nov-19,387
IOS,14-Nov-19,630
IOS,15-Nov-19,260
IOS,16-Nov-19,286
IOS,17-Nov-19,425
IOS,17-Oct-19,24
IOS,18-Nov-19,507
IOS,18-Oct-19,32
IOS,19-Nov-19,386
IOS,19-Oct-19,16
IOS,20-Nov-19,535
IOS,20-Oct-19,21
IOS,21-Nov-19,398
IOS,21-Oct-19,18
IOS,22-Nov-19,256
IOS,22-Oct-19,38
IOS,23-Nov-19,168
IOS,23-Oct-19,26
IOS,24-Nov-19,407
IOS,24-Oct-19,35
IOS,25-Oct-19,24
IOS,26-Oct-19,21
IOS,27-Oct-19,13
IOS,28-Oct-19,102
IOS,29-Oct-19,178
IOS,30-Oct-19,215
IOS,31-Oct-19,171
TOTAL,1-Nov-19,204
TOTAL,2-Nov-19,184
TOTAL,3-Nov-19,339
TOTAL,4-Nov-19,387
TOTAL,5-Nov-19,231
TOTAL,6-Nov-19,303
TOTAL,7-Nov-19,308
TOTAL,8-Nov-19,678
TOTAL,9-Nov-19,731
TOTAL,10-Nov-19,728
TOTAL,11-Nov-19,561
TOTAL,12-Nov-19,544
TOTAL,13-Nov-19,507
TOTAL,14-Nov-19,949
TOTAL,15-Nov-19,392
TOTAL,16-Nov-19,547
TOTAL,17-Nov-19,719
TOTAL,17-Oct-19,35
TOTAL,18-Nov-19,658
TOTAL,18-Oct-19,42
TOTAL,19-Nov-19,556
TOTAL,19-Oct-19,26
TOTAL,20-Nov-19,669
TOTAL,20-Oct-19,26
TOTAL,21-Nov-19,522
TOTAL,21-Oct-19,26
TOTAL,22-Nov-19,394
TOTAL,22-Oct-19,54
TOTAL,23-Nov-19,299
TOTAL,23-Oct-19,39
TOTAL,24-Nov-19,566
TOTAL,24-Oct-19,44
TOTAL,25-Oct-19,33
TOTAL,26-Oct-19,31
TOTAL,27-Oct-19,25
TOTAL,28-Oct-19,142
TOTAL,29-Oct-19,305
TOTAL,30-Oct-19,340
TOTAL,31-Oct-19,287
I am trying to plot multiple lines on a chart using the following data and would be grateful for any assistance.
I have a set of daily counts of mobile app 1st open event by OS and Date with Daily Totals.
I would like to have 3 line plots on the same chart by day.
I have 2 lines appearing but the Date values are not appearing the right order on the X axis, I suspect they are beign treated as strings.
Happy to scrap my program completely if there is an easier way I suspect there will be
Thanks for helping a newbie
import plotly.express as px
from chart_studio.plotly import iplot
import plotly.offline as pyo
import plotly.graph_objs as go
import pandas as pd
import numpy as np
import os
print(os.getcwd())
abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)
print(os.getcwd())
df = pd.read_csv('dailycounts.csv')
isIOS = df['OS'] == 'IOS'
isAndroid = df['OS'] == 'ANDROID'
# print (IOSList.head())
IOSData = df[isIOS]
AndroidData = df[isAndroid]
# print (IOSData)
trace1 = {
"line": {"color": "rgba(31,119,180,1)"},
"mode": "lines",
"name": 'IOS',
"type": "scatter",
"x": IOSData['TheDate'],
"y": IOSData['TheCount'],
"xaxis": "x",
"yaxis": "y"
}
trace2 = {
"line": {"color": "rgba(31,119,180,1)"},
"mode": "lines",
"name": 'Android',
"type": "scatter",
"x": AndroidData['TheDate'],
"y": AndroidData['TheCount'],
"xaxis": "x",
"yaxis": "y"
}
data =[trace1,trace2]
# print ([trace1])
layout = {
"title": "First Opens",
"xaxis": {
"title": "Date",
"domain": [0, 1],
"rangeselector": {"buttons": [
{
"step": "month",
"count": 3,
"label": "3 mo",
"stepmode": "backward"
},
{
"step": "month",
"count": 6,
"label": "6 mo",
"stepmode": "backward"
},
{
"step": "year",
"count": 1,
"label": "1 yr",
"stepmode": "backward"
},
{
"step": "year",
"count": 1,
"label": "YTD",
"stepmode": "todate"
},
{"step": "all"}
]}
},
"yaxis": {
"title": "Count",
"domain": [0, 1]
},
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
}
}
# fig = Figure(data=data, layout=layout)
pyo.plot(data, filename='test9.html')OS,TheDate,TheCountANDROID,1-Nov-19,85
ANDROID,2-Nov-19,69
ANDROID,3-Nov-19,157
ANDROID,4-Nov-19,157
ANDROID,5-Nov-19,96
ANDROID,6-Nov-19,117
ANDROID,7-Nov-19,150
ANDROID,8-Nov-19,299
ANDROID,9-Nov-19,321
ANDROID,10-Nov-19,272
ANDROID,11-Nov-19,188
ANDROID,12-Nov-19,156
ANDROID,13-Nov-19,120
ANDROID,14-Nov-19,319
ANDROID,15-Nov-19,132
ANDROID,16-Nov-19,261
ANDROID,17-Nov-19,294
ANDROID,17-Oct-19,11
ANDROID,18-Nov-19,151
ANDROID,18-Oct-19,10
ANDROID,19-Nov-19,170
ANDROID,19-Oct-19,10
ANDROID,20-Nov-19,134
ANDROID,20-Oct-19,5
ANDROID,21-Nov-19,124
ANDROID,21-Oct-19,8
ANDROID,22-Nov-19,138
ANDROID,22-Oct-19,16
ANDROID,23-Nov-19,131
ANDROID,23-Oct-19,13
ANDROID,24-Nov-19,159
ANDROID,24-Oct-19,9
ANDROID,25-Oct-19,9
ANDROID,26-Oct-19,10
ANDROID,27-Oct-19,12
ANDROID,28-Oct-19,40
ANDROID,29-Oct-19,127
ANDROID,30-Oct-19,125
ANDROID,31-Oct-19,116
IOS,1-Nov-19,119
IOS,2-Nov-19,115
IOS,3-Nov-19,182
IOS,4-Nov-19,230
IOS,5-Nov-19,135
IOS,6-Nov-19,186
IOS,7-Nov-19,158
IOS,8-Nov-19,379
IOS,9-Nov-19,410
IOS,10-Nov-19,456
IOS,11-Nov-19,373
IOS,12-Nov-19,388
IOS,13-Nov-19,387
IOS,14-Nov-19,630
IOS,15-Nov-19,260
IOS,16-Nov-19,286
IOS,17-Nov-19,425
IOS,17-Oct-19,24
IOS,18-Nov-19,507
IOS,18-Oct-19,32
IOS,19-Nov-19,386
IOS,19-Oct-19,16
IOS,20-Nov-19,535
IOS,20-Oct-19,21
IOS,21-Nov-19,398
IOS,21-Oct-19,18
IOS,22-Nov-19,256
IOS,22-Oct-19,38
IOS,23-Nov-19,168
IOS,23-Oct-19,26
IOS,24-Nov-19,407
IOS,24-Oct-19,35
IOS,25-Oct-19,24
IOS,26-Oct-19,21
IOS,27-Oct-19,13
IOS,28-Oct-19,102
IOS,29-Oct-19,178
IOS,30-Oct-19,215
IOS,31-Oct-19,171
TOTAL,1-Nov-19,204
TOTAL,2-Nov-19,184
TOTAL,3-Nov-19,339
TOTAL,4-Nov-19,387
TOTAL,5-Nov-19,231
TOTAL,6-Nov-19,303
TOTAL,7-Nov-19,308
TOTAL,8-Nov-19,678
TOTAL,9-Nov-19,731
TOTAL,10-Nov-19,728
TOTAL,11-Nov-19,561
TOTAL,12-Nov-19,544
TOTAL,13-Nov-19,507
TOTAL,14-Nov-19,949
TOTAL,15-Nov-19,392
TOTAL,16-Nov-19,547
TOTAL,17-Nov-19,719
TOTAL,17-Oct-19,35
TOTAL,18-Nov-19,658
TOTAL,18-Oct-19,42
TOTAL,19-Nov-19,556
TOTAL,19-Oct-19,26
TOTAL,20-Nov-19,669
TOTAL,20-Oct-19,26
TOTAL,21-Nov-19,522
TOTAL,21-Oct-19,26
TOTAL,22-Nov-19,394
TOTAL,22-Oct-19,54
TOTAL,23-Nov-19,299
TOTAL,23-Oct-19,39
TOTAL,24-Nov-19,566
TOTAL,24-Oct-19,44
TOTAL,25-Oct-19,33
TOTAL,26-Oct-19,31
TOTAL,27-Oct-19,25
TOTAL,28-Oct-19,142
TOTAL,29-Oct-19,305
TOTAL,30-Oct-19,340
TOTAL,31-Oct-19,287
