| import math |
| import pandas as pd |
| |
| from ipyvizzu import Data, Config, Style |
| from ipyvizzustory import Story, Slide, Step |
| |
| |
| |
| data = Data() |
| df = pd.read_csv( |
| "https://ipyvizzu-story.vizzuhq.com/0.11/examples/trumptwitter/trumptwitter.csv", |
| ) |
| data.add_df(df) |
| |
| |
| |
| style = Style( |
| { |
| "tooltip": {"fontSize": "22px"}, |
| "title": {"paddingTop": "1.2em", "fontSize": "2.5em"}, |
| "legend": {"label": {"fontSize": "1.8em"}, "width": "16em"}, |
| "logo": {"width": "6em"}, |
| "plot": { |
| "marker": {"label": {"fontSize": "1.5em"}}, |
| "yAxis": { |
| "label": { |
| "fontSize": "1.5em", |
| }, |
| "title": {"color": "#ffffff00"}, |
| "interlacing": {"color": "#ffffff00"}, |
| }, |
| "xAxis": { |
| "label": { |
| "fontSize": "1.6em", |
| "paddingTop": "1em", |
| }, |
| "title": {"fontSize": "1.4em", "paddingTop": "2.5em"}, |
| }, |
| }, |
| } |
| ) |
| |
| |
| story = Story(data=data, style=style) |
| |
| |
| |
| story.set_size("100%", "400px") |
| |
| |
| |
| story.set_feature("tooltip", True) |
| |
| |
| |
| |
| slide1 = Slide( |
| Step( |
| Data.filter( |
| "record.Firsttweet === 'Yes' && record.Dummy === 'No'" |
| ), |
| Config( |
| { |
| "channels": { |
| "y": { |
| "set": ["tweets"], |
| }, |
| "x": {"set": ["Period", "year", "month"]}, |
| "color": "Period", |
| }, |
| "title": "Trump started tweeting in May '09", |
| } |
| ), |
| ) |
| ) |
| |
| story.add_slide(slide1) |
| |
| slide2 = Slide( |
| Step( |
| Data.filter( |
| "record.Period === 'New to Twitter' && record.Dummy === 'No'" |
| ), |
| Config( |
| { |
| "title": "In the first two years he wasn't very active", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide2) |
| |
| slide3 = Slide( |
| Step( |
| Data.filter( |
| """ |
| (record.Period === 'New to Twitter' || record.Period === 'Businessman') |
| && record.Dummy === 'No' |
| """ |
| ), |
| Config( |
| { |
| "title": "Then he got hooked on", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide3) |
| |
| slide4 = Slide( |
| Step( |
| Data.filter( |
| """ |
| (record.Period === 'New to Twitter' || |
| record.Period === 'Businessman' || |
| record.Period === 'Nominee') |
| && record.Dummy === 'No' |
| """ |
| ), |
| Config( |
| { |
| "title": "Interesting trend after becoming a presidential nominee", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide4) |
| |
| slide5 = Slide( |
| Step( |
| Data.filter("record.Dummy === 'No'"), |
| Config( |
| { |
| "title": "And after he became President", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide5) |
| |
| slide6 = Slide() |
| slide6.add_step( |
| Step( |
| Config({"geometry": "area", "align": "center"}), |
| ) |
| ) |
| slide6.add_step( |
| Step( |
| Config( |
| { |
| "title": "All of Trump's tweets until May 2020", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide6) |
| |
| slide7 = Slide( |
| Step( |
| Config( |
| { |
| "y": "retweetcount", |
| "title": "And the number of times these were retweeted", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide7) |
| |
| slide8 = Slide() |
| slide8.add_step( |
| Step( |
| Config( |
| { |
| "y": "tweets", |
| "title": "Let's focus on the number of tweets for now", |
| } |
| ), |
| ) |
| ), |
| slide8.add_step( |
| Step( |
| Config( |
| { |
| "x": {"set": ["year", "month"]}, |
| "color": None, |
| } |
| ) |
| ) |
| ) |
| story.add_slide(slide8) |
| |
| slide9 = Slide( |
| Step( |
| Config( |
| { |
| "y": ["tweets", "Type"], |
| "color": "Type", |
| "title": "Original tweets, retweets & replies sent", |
| } |
| ), |
| Style( |
| { |
| "plot": { |
| "marker": { |
| "colorPalette": "#A0CDEBFF #60C0E6FF #1DA1F3FF" |
| } |
| } |
| }, |
| ), |
| ) |
| ) |
| story.add_slide(slide9) |
| |
| slide10 = Slide( |
| Step( |
| Config({"split": True, "align": "none"}), |
| Style({"plot": {"yAxis": {"label": {"color": "#ffffff00"}}}}), |
| ) |
| ) |
| story.add_slide(slide10) |
| |
| slide11 = Slide( |
| Step( |
| Config( |
| { |
| "split": False, |
| "align": "stretch", |
| "title": "Original tweets, retweets & replies sent (%)", |
| } |
| ), |
| Style({"plot": {"yAxis": {"label": {"color": "#999999ff"}}}}), |
| ) |
| ) |
| story.add_slide(slide11) |
| |
| slide12 = Slide() |
| slide12.add_step( |
| Step( |
| Config( |
| { |
| "align": "center", |
| "title": "", |
| } |
| ), |
| ) |
| ) |
| slide12.add_step( |
| Step( |
| Config({"y": "tweets", "color": None, "legend": "lightness"}), |
| Style( |
| {"plot": {"marker": {"colorPalette": "null"}}}, |
| ), |
| ) |
| ) |
| slide12.add_step( |
| Step( |
| Config( |
| { |
| "y": ["tweets", "Tool"], |
| "color": "Tool", |
| "title": "Tools Trump Used to Tweet", |
| "legend": "color", |
| } |
| ), |
| Style( |
| { |
| "plot": { |
| "marker": { |
| "colorPalette": "#597696FF #ED2828FF #26EC87FF #29B9BFFF " |
| } |
| } |
| }, |
| ), |
| ) |
| ) |
| story.add_slide(slide12) |
| |
| slide13 = Slide( |
| Step( |
| Config({"split": True, "align": "none"}), |
| Style({"plot": {"yAxis": {"label": {"color": "#ffffff00"}}}}), |
| ) |
| ) |
| story.add_slide(slide13) |
| |
| slide14 = Slide() |
| slide14.add_step( |
| Step( |
| Config( |
| { |
| "geometry": "rectangle", |
| } |
| ), |
| ) |
| ) |
| slide14.add_step( |
| Step( |
| Config( |
| { |
| "x": ["tweets", "year", "month"], |
| "y": "Tool", |
| "geometry": "rectangle", |
| "split": False, |
| "align": "none", |
| } |
| ), |
| Style( |
| { |
| "plot": { |
| "xAxis": {"title": {"color": "#ffffff00"}}, |
| "yAxis": {"label": {"color": "#999999ff"}}, |
| } |
| }, |
| ), |
| ) |
| ) |
| slide14.add_step( |
| Step( |
| Config( |
| { |
| "x": "tweets", |
| "label": "tweets", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide14) |
| |
| slide15 = Slide() |
| slide15.add_step( |
| Step( |
| Config( |
| { |
| "x": ["tweets", "AMPM", "hour12"], |
| "label": None, |
| } |
| ), |
| ) |
| ) |
| slide15.add_step( |
| Step( |
| Config( |
| { |
| "y": ["tweets", "Tool"], |
| "x": ["AMPM", "hour12"], |
| "align": "max", |
| } |
| ), |
| ) |
| ) |
| slide15.add_step( |
| Step( |
| Config( |
| { |
| "geometry": "area", |
| } |
| ), |
| ) |
| ) |
| slide15.add_step( |
| Step( |
| Config( |
| { |
| "coordSystem": "polar", |
| "angle": math.pi, |
| "title": "Time of Day When Trump Tweeted", |
| } |
| ), |
| Style( |
| { |
| "plot": { |
| "yAxis": {"label": {"color": "#ffffff00"}}, |
| "xAxis": { |
| "label": { |
| "fontSize": "2em", |
| "paddingBottom": "2.5em", |
| "paddingTop": "2.5em", |
| "paddingLeft": "2.5em", |
| "paddingRight": "2.5em", |
| } |
| }, |
| } |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide15) |
| |
| slide16 = Slide( |
| Step( |
| Config( |
| { |
| "y": ["Businessman", "Tool"], |
| "title": "Times Trump Tweeted When Being a Businessman", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide16) |
| |
| slide17 = Slide( |
| Step( |
| Config( |
| { |
| "y": ["President", "Tool"], |
| "title": "Times Trump Tweeted When Being President", |
| } |
| ), |
| ) |
| ) |
| story.add_slide(slide17) |
| |
| |
| |
| story.play() |