<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Workbooks
Workbooks allow users to persist the analytic state of a visualization, including active filters, exclusions, and color encodings. 
PyGraphistry users can set the workbook via .settings(url_params={'workbook'
Step1:  Set the location of the graphistry server
To use our public server, use labs.graphistry.com
Step2:  Let's first take a look at a subgraph of Facebook's social network, and create a new workbook named popularCommunities
Step3:  In this vizualization, let's create a notebook with a filter to find communities of popular characters.
Click on the filter button in the toolbar to the left. 
In the 'Select attribute to filter' input box, type
Step4:  Confirm the filter has been persisted, by clicking on the filters button, and checking that 'point
Step5:  Use with pygraphistry
Set via .settings(url_params={'workbook'
<ASSISTANT_TASK:>
Python Code:
import time
from IPython.display import IFrame
Explanation: Workbooks
Workbooks allow users to persist the analytic state of a visualization, including active filters, exclusions, and color encodings. 
PyGraphistry users can set the workbook via .settings(url_params={'workbook': 'my_workbook_id'})
See bottom example
Workbooks are not bound to any particular dataset, meaning that the same workbook can be used across many different dataset.
This design allows workbooks to be shared amongst analysts, even if they have different access permissions to the data. 
Additionally, for on-premise costumers who require a 'read-process-discard' security model, workbooks allow you to resume an investigation even if the last dataset was discarded. 
This design is also valuable to analyze time-dependent datasets. For example, a user can reuse the same workbook to analyze a graph of the day's highest priority security events. 
Or alternatively, different datasets that represent similar entities and connections (In this tutorial, we use one workbook to examine two different social networks graphs)
Import the necessary libaries
End of explanation
SERVER = 'labs.graphistry.com'
Explanation: Set the location of the graphistry server
To use our public server, use labs.graphistry.com
End of explanation
current_time = str(int(time.time()))
dataset='Facebook'
# We add the current time to the end of the workbook name to ensure it is unique
workbook = 'popularCommunities' + current_time 
current_time = str(int(time.time()))
url = 'http://' + SERVER + '/graph/graph.html?dataset=' + dataset + '&workbook=' + workbook + '&splashAfter=' + current_time
IFrame(url, width=1000, height=500)
Explanation: Let's first take a look at a subgraph of Facebook's social network, and create a new workbook named popularCommunities
End of explanation
current_time = str(int(time.time()))
dataset='Marvel'
url = 'http://' + SERVER + '/graph/graph.html?dataset=' + dataset + '&workbook=' + workbook + '&splashAfter=' + current_time
IFrame(url, width=1000, height=500)
Explanation: In this vizualization, let's create a notebook with a filter to find communities of popular characters.
Click on the filter button in the toolbar to the left. 
In the 'Select attribute to filter' input box, type: 'point:degree' and then click enter
Change the filter to point:degree &gt;= 100
Make sure to save the workbook by clicking on the floppy disc icon at the bottom of the toolbar. 
The workbook should now be saved. Refresh the page to confirm the filter has persisted
Now let's reuse our workbook from the last step to find popular communities in a different  social network graph.
In this example, we examime a social network made from the characters in Marvel comic books.
End of explanation
current_time = str(int(time.time()))
dataset='Marvel'
url = 'http://' + SERVER + '/graph/graph.html?dataset=' + dataset + '&splashAfter=' + current_time
IFrame(url, width=1000, height=500)
import pandas as pd
import graphistry
# To specify Graphistry account & server, use:
# graphistry.register(api=3, username='...', password='...', protocol='https', server='hub.graphistry.com')
# For more options, see https://github.com/graphistry/pygraphistry#configure
edges_1_df = pd.DataFrame({'s': [0,1,2], 'd': [1,2,0]})
edges_2_df = pd.DataFrame({'s': [0,1,2, 3], 'd': [1,2,0,1]})
g = graphistry.bind(source='s', destination='d').settings(url_params={'workbook': 'my_' + workbook})
Explanation: Confirm the filter has been persisted, by clicking on the filters button, and checking that 'point:degree > 100' is an active filter
For comparison, the following vizualization was created without the workbook
End of explanation
g.plot(edges_1_df)
g.plot(edges_2_df)
Explanation: Use with pygraphistry
Set via .settings(url_params={'workbook': 'my_workbook_id'})
Reuse across plots
End of explanation
<END_TASK>