<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 <h1> <center> Season Movie Analysis </center> </h1>
Step1:  Using plotly offline mode
Step2:  Reading the final dataset
Step3:  List of Seasons [Spring, Summer, Fall(Autum), Winter] with corresponding months
Step4:  List with 
* First Index - Season Names
* Second Index - Mean of Adj. Box Office of each season
* Third Index - Movie Count for each season
* Fourth Index - Mean rating for each season
Step5:  Function that return dicitonary data to plot the data point
Step6:  Adding Data to figure and setting x-axis, y-axis, title, background of layout
Step7:  Plotting the figure
<ASSISTANT_TASK:>
Python Code:
import random
import pandas as pd
from plotly.graph_objs import *
Explanation: <h1> <center> Season Movie Analysis </center> </h1>
End of explanation
from plotly.offline import init_notebook_mode, iplot, plot
init_notebook_mode(connected=True)
Explanation: Using plotly offline mode
End of explanation
dataset = pd.read_csv('finalDataset.csv')
dataset.head(3)
Explanation: Reading the final dataset
End of explanation
monthList = ['Mar|Apr|May', 'Jun|Jul|Aug', 'Sep|Oct|Nov', 'Dec|Jan|Feb']
Explanation: List of Seasons [Spring, Summer, Fall(Autum), Winter] with corresponding months
End of explanation
finalList = [['Spring', 'Summer', 'Fall(Autumn)', 'Winter'] ,\
             [int(dataset[dataset.RELEASED.str.contains(seasonMonths, na = False)]['ADJ. BOX OFFICE'].mean()) \
                 for seasonMonths in monthList] , \
             [len(dataset[dataset.RELEASED.str.contains(seasonMonths, na = False)]) \
                  for seasonMonths in monthList] , \
             [round(dataset[dataset.RELEASED.str.contains(seasonMonths, na = False)]['RATING'].mean(), 2) \
              for seasonMonths in monthList]]
Explanation: List with 
* First Index - Season Names
* Second Index - Mean of Adj. Box Office of each season
* Third Index - Movie Count for each season
* Fourth Index - Mean rating for each season
End of explanation
def data_(boxoffice, rating, movieCount, name):
    
    return {
        'x' : [boxoffice],
        'y' : [rating],
        'name' : name,
        'mode' : 'markers',
        'text' : 'Season: ' + name + \
                 '<br>Mean Rating: ' + str(rating) + \
                 '<br>Movie Count: ' + str(movieCount) + \
                 '<br>Mean BoxOffice: ' + str(round(boxoffice/1000000, 2)) + 'M',
        'hoverinfo' : 'text',
        'marker' : {
            'size' : [movieCount],
            'sizemode' : 'area',
            'line' : {
                'width' : 1
            }
    }
}
Explanation: Function that return dicitonary data to plot the data point
End of explanation
figure = {
    'data': [data_(finalList[1][i], finalList[3][i], finalList[2][i], finalList[0][i]) for i in range(4)],
    'layout' : {}
}
figure['layout']['xaxis'] = {'title' : 'Mean Box Office',
                            'titlefont': {
                                'size' : 16, 'family' : 'Droid Sans'
                            },
                            'showline' : True,
                            'ticks' : 'outside',
                            'tickwidth' : 2,
                            'gridcolor' : '#FFFFFF'}
figure['layout']['yaxis'] = {'title' : 'Mean Rating', 
                            'titlefont' : {
                                'size' : 16 , 'family' : 'Droid Sans'
                            },
                            'showline' : True,
                            'ticks' : 'outside',
                            'tickwidth' : 2,
                            'gridcolor' : '#FFFFFF'}
figure['layout']['title'] =  'Season Movie Analysis'
figure['layout']['titlefont'] = {'size' : 20, 'family' : 'Times New Roman'}
figure['layout']['plot_bgcolor'] = 'rgb(223, 232, 243)'
Explanation: Adding Data to figure and setting x-axis, y-axis, title, background of layout
End of explanation
# iplot(figure)
plot(figure)
Explanation: Plotting the figure
End of explanation
<END_TASK>