In [35]:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
from pymongo import MongoClient
from geopy.geocoders import Nominatim

locate = Nominatim()
client = MongoClient()
db = client.twitterCleanDb
tweetCollection = db.tweets

times = []
polarities = []
subjectivities = []
locations = []
locationPolarities = []
lats = []
longs = []
modiTweets = tweetCollection.find({'cleantest' :{'$regex': '.*a*.'}})
for tweet in modiTweets:
    times.append(tweet['created_at'])
    polarities.append(tweet['polarity'])
    subjectivities.append(tweet['subjectivity'])
    
    latlong = locate.geocode(tweet['user']['location'])
    if latlong is None:
        latlong = locate.geocode(tweet['user']['time_zone'])
        if latlong is None:
            print('appended')
        else:
            locations.append([latlong.latitude, latlong.longitude])
            print('appended 1', latlong, latlong.latitude, latlong.longitude)
            locationPolarities.append(tweet['polarity'])
    else:
        locations.append([latlong.latitude, latlong.longitude])
        print('appended 2', latlong, latlong.latitude, latlong.longitude)
        locationPolarities.append(tweet['polarity'])
    
appended 1 New Delhi, Delhi, India 28.6141793 77.2022662
appended 2 Noida, Ghaziabad, Uttar Pradesh, 201301, India 28.5726442 77.3547609
appended 1 Mumbai, Greater Bombay, Mumbai Suburban, Maharashtra, India 19.1334321 72.8882172
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 United Kingdom, دبي, دبي‎, الإمارات العربية المتحدة 25.2232283 55.1594933008754
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Big A's On the Riverfront, 308, North Main Street, St. Charles, St. Charles County, Missouri, 63301, United States of America 38.78305035 -90.4800825562532
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Mumbai, Greater Bombay, Mumbai Suburban, Maharashtra, India 19.1334321 72.8882172
appended 2 Jandola PO, Jandola-Chagmalai Rd, South Wazīristān Agency, وفاقی قبائلی علاقہ جات, ‏پاکستان‎ 32.3365096 70.1223033
appended 2 India 22.3511148 78.6677428
appended 2 Songadh, Bhāvnagar, Gujarat, India 21.7141203 71.8881177
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 Hawaii, United States of America 21.2160437 -157.975203
appended 2 Vishakhapatnam District, Andhra Pradesh, India 17.7320878 82.8488772416467
appended 1 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 1 Hawaii, United States of America 21.2160437 -157.975203
appended 2 Kharagpur, Paschim Medinipur, West Bengal, 721301, India 22.34309 87.3012875
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 India 22.3511148 78.6677428
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 New Delhi, Delhi, India 28.6141793 77.2022662
appended 2 Noida, Ghaziabad, Uttar Pradesh, 201301, India 28.5726442 77.3547609
appended 1 Mumbai, Greater Bombay, Mumbai Suburban, Maharashtra, India 19.1334321 72.8882172
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 United Kingdom, دبي, دبي‎, الإمارات العربية المتحدة 25.2232283 55.1594933008754
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Big A's On the Riverfront, 308, North Main Street, St. Charles, St. Charles County, Missouri, 63301, United States of America 38.78305035 -90.4800825562532
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Mumbai, Greater Bombay, Mumbai Suburban, Maharashtra, India 19.1334321 72.8882172
appended 2 Jandola PO, Jandola-Chagmalai Rd, South Wazīristān Agency, وفاقی قبائلی علاقہ جات, ‏پاکستان‎ 32.3365096 70.1223033
appended 2 India 22.3511148 78.6677428
appended 2 Songadh, Bhāvnagar, Gujarat, India 21.7141203 71.8881177
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 Hawaii, United States of America 21.2160437 -157.975203
appended 2 Vishakhapatnam District, Andhra Pradesh, India 17.7320878 82.8488772416467
appended 1 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 1 Hawaii, United States of America 21.2160437 -157.975203
appended 2 Kharagpur, Paschim Medinipur, West Bengal, 721301, India 22.34309 87.3012875
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 India 22.3511148 78.6677428
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 India 22.3511148 78.6677428
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 2 Chandigarh, District of Chandigarh, Chandigarh, 160022, India 30.7194022 76.7646552
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Sonipat, Haryana, India 29.05587195 76.895369282819
appended 1 Tijuana, Municipio de Tijuana, Baja California, 22105, México 32.5008626 -116.9641657
appended 2 Follows Camp, Los Angeles County, California, United States of America 34.2336842 -117.8055859
appended 2 Rajod, Dhār, Dhar, Madhya Pradesh, 454648, India 22.9398 75.0766
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 2 Across Road, Heritage Farms, Howard County, Maryland, 21784, United States of America 39.3417367 -76.9502298
appended 1 Kolkata, Hāora, West Bengal, 700021, India 22.5677459 88.3476023
appended 2 Kerala, India 10.3529588 76.5119752
appended 1 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 India 22.3511148 78.6677428
appended 2 Madhya Pradesh, India 23.8143419 77.5340719
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 New Delhi, Delhi, India 28.6141793 77.2022662
appended 2 Noida, Ghaziabad, Uttar Pradesh, 201301, India 28.5726442 77.3547609
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 جدة, منطقة مكة المكرمة, 23443, السعودية 21.5822247 39.1640396
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Bengaluru, Bangalore Urban, Karnataka, India 12.9791198 77.5912997
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended
appended 2 France métropolitaine, France 46.603354 1.8883335
appended 2 World, 구마로, 송현2동, 본리동, 달서구, 대구광역시, 704-831, 대한민국 35.8376958 128.5575166
appended 2 World, 구마로, 송현2동, 본리동, 달서구, 대구광역시, 704-831, 대한민국 35.8376958 128.5575166
appended 2 Worldwide, 2641, Northeast Alberta Street, King, Portland, Multnomah County, Oregon, 97217, United States of America 45.5591381 -122.638103
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Jyväskylä, Keski-Suomi, Länsi- ja Sisä-Suomen aluehallintovirasto, Länsi-Suomi, Manner-Suomi, Suomi 62.2393002 25.745951
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Brantford, Ontario, Canada 43.141078 -80.266113
appended 2 LA, Los Angeles County, California, United States of America 34.054935 -118.244476
appended 2 World, 구마로, 송현2동, 본리동, 달서구, 대구광역시, 704-831, 대한민국 35.8376958 128.5575166
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Wakanda, Amani centre bukoba rural Tanzania, Bukoba, Kagera, Lake, Tanzania -1.6632409 31.4014928
appended 2 Atlanta, Fulton County, Georgia, United States of America 33.7490987 -84.3901849
appended 2 Cork City, Horgan's Quay, St. Patrick's A, Cork, County Cork, Munster, T23 E6TD, Ireland 51.9000966 -8.4610351
appended 1 Athens, Athens - Clarke County, Georgia, 30609, United States of America 33.9550905 -83.3881868
appended 2 London, Greater London, England, SW1A 2DU, UK 51.5073219 -0.1276474
appended 2 Wakanda, Amani centre bukoba rural Tanzania, Bukoba, Kagera, Lake, Tanzania -1.6632409 31.4014928
appended 2 Australia -24.7761086 134.755
appended 1 My World Europe, Ziya Gökalp, Başakşehir, İstanbul, Marmara Bölgesi, Türkiye 41.06614645 28.7771047294844
appended 2 仙台市, 宮城県, 日本 38.2661528 140.8715343
appended 2 Virginia, United States of America 37.1232245 -78.4927721
appended 2 World, 구마로, 송현2동, 본리동, 달서구, 대구광역시, 704-831, 대한민국 35.8376958 128.5575166
appended 2 Valsād, Valsad, Gujarat, India 20.5 73.083333
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 Ditmas Park, BK, Kings County, NYC, New York, 11224, United States of America 40.6375307 -73.9634487632331
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended
appended 2 Planet Earth, Bánki Donát utca, Nagyzugló, 14. kerület, Budapest, Közép-Magyarország, 1148, Magyarország 47.5044752 19.1251107
appended 2 Santiago, Provincia de Santiago, Región Metropolitana de Santiago, Chile -33.4377968 -70.6504451
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 Roma, RM, LAZ, Italia 41.8933203 12.4829321
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 NYC, New York, United States of America 40.7306458 -73.9866136
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 World, 구마로, 송현2동, 본리동, 달서구, 대구광역시, 704-831, 대한민국 35.8376958 128.5575166
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 2 Georgia, United States of America 32.3293809 -83.1137366
appended 2 London, Greater London, England, SW1A 2DU, UK 51.5073219 -0.1276474
appended 1 Arizona, United States of America 34.395342 -111.7632755
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 1 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 2 Nairobi, Kenya -1.2832533 36.8172449
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 1 Time, King Street West, University District, Kingston, Ontario, K7L2V3, Canada 44.2222023 -76.4986098
appended
appended 2 Chennai, Chennai district, Tamil Nadu, India 13.0801721 80.2838331
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 United States of America 39.7837304 -100.4458825
appended 2 England, UK 52.7954791 -0.540240286617432
appended 2 Sydney, NSW, Australia -33.8548157 151.2164539
appended 2 India 22.3511148 78.6677428
appended
appended 2 大津市, 滋賀県, 近畿地方, 日本 35.0865692 135.9033813
appended 2 SF, California, United States of America 37.7647993 -122.4629897
appended 1 London, Greater London, England, SW1A 2DU, UK 51.5073219 -0.1276474
appended 2 Malmö, Skåne, Götaland, 211 34, Sverige 55.6052931 13.0001566
appended 2 ঢাকা, ঢাকা বিভাগ, 12, বাংলাদেশ 23.7593572 90.3788136
appended 2 North Pole, Fairbanks North Star, Alaska, 99705, United States of America 64.750997 -147.349319
appended 2 Swansea, West Glamorgan, Wales, SA1 3ES, UK 51.6211442 -3.9467751
appended 2 South Carolina, United States of America 33.6874388 -80.4363743
appended 2 South Carolina, United States of America 33.6874388 -80.4363743
appended 2 Just Teachers, Chapel Hill, Skipton, Craven, North Yorkshire, Yorkshire and the Humber, England, BD23 1NL, UK 53.9638385 -2.0172871
appended 2 Ottawa, Ontario, Canada 45.421106 -75.690308
appended 1 Time, King Street West, University District, Kingston, Ontario, K7L2V3, Canada 44.2222023 -76.4986098
appended 2 Praha, okres Hlavní město Praha, Hlavní město Praha, Praha, Česko 50.0874654 14.4212535
appended 2 上市, 富山立山魚津線, 上市町, 中新川郡, 富山県, 日本 36.7044345 137.3574628
appended 2 Great Britain, Richmondshire, North Yorkshire, Yorkshire and the Humber, England, UK 54.31536155 -1.91802349480124
appended 2 銀座, 東京高速道路KK線, 銀座8, 銀座, 中央区, 東京都, 104-0061, 日本 35.6730036 139.763599
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 New Delhi, Delhi, India 28.6141793 77.2022662
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 World, 구마로, 송현2동, 본리동, 달서구, 대구광역시, 704-831, 대한민국 35.8376958 128.5575166
appended
appended 2 Texas, United States of America 31.8160381 -99.5120986
appended 1 None, TO, PIE, Italia 44.933143 7.540121
appended 2 London, Greater London, England, SW1A 2DU, UK 51.5073219 -0.1276474
appended 1 Alaska, United States of America 64.4459613 -149.680909
appended 2 Scotland, UK 56.7861112 -4.1140518
appended 2 Rochester, Monroe County, New York, 14614, United States of America 43.157285 -77.615214
appended 2 NYC, New York, United States of America 40.7306458 -73.9866136
appended 1 Athens, Athens - Clarke County, Georgia, 30609, United States of America 33.9550905 -83.3881868
appended 2 Accra, Accra Metropolitan, Greater Accra Region, 0302, Ghana 5.5600141 -0.2057437
appended 2 Poznań, wielkopolskie, RP 52.4006522 16.9197520238885
appended
In [36]:
import dateutil
df = pd.DataFrame({'time':times, 'polarity': polarities, 'subjectivity': subjectivities})
df = df.sort_values(by=['time'])
df['time'] = df['time'].apply(dateutil.parser.parse)
df.dtypes
Out[36]:
polarity                    float64
subjectivity                float64
time            datetime64[ns, UTC]
dtype: object
In [37]:
plt.figure(figsize = (12, 5))

plt.title('Sentiment Comparision')
plt.plot(df['time'], df['polarity'])
plt.plot(df['time'], df['subjectivity'])

plt.xlabel('Time')
plt.ylabel('Sentiment Value')
Out[37]:
Text(0,0.5,'Sentiment Value')
In [38]:
lats = [lat[0] for lat in locations]
longi = [long[1] for long in locations]

print(lats, " +  ", longi)
[28.6141793, 28.5726442, 19.1334321, 44.933143, 25.2232283, 44.933143, 38.78305035, 44.933143, 28.6141793, 13.0801721, 44.933143, 44.933143, 19.1334321, 32.3365096, 22.3511148, 21.7141203, 44.933143, 28.6141793, 21.2160437, 17.7320878, 13.0801721, 21.2160437, 22.34309, 44.933143, 22.3511148, 44.933143, 28.6141793, 28.5726442, 19.1334321, 44.933143, 25.2232283, 44.933143, 38.78305035, 44.933143, 28.6141793, 13.0801721, 44.933143, 44.933143, 19.1334321, 32.3365096, 22.3511148, 21.7141203, 44.933143, 28.6141793, 21.2160437, 17.7320878, 13.0801721, 21.2160437, 22.34309, 44.933143, 22.3511148, 44.933143, 22.3511148, 44.933143, 13.0801721, 30.7194022, 44.933143, 44.933143, 29.05587195, 32.5008626, 34.2336842, 22.9398, 44.933143, 28.6141793, 39.3417367, 22.5677459, 10.3529588, 28.6141793, 44.933143, 22.3511148, 23.8143419, 28.6141793, 44.933143, 44.933143, 28.6141793, 28.5726442, 44.933143, 21.5822247, 44.933143, 12.9791198, 44.933143, 'p', 46.603354, 35.8376958, 35.8376958, 45.5591381, 44.933143, 44.933143, 62.2393002, 44.933143, 43.141078, 34.054935, 35.8376958, 44.933143, -1.6632409, 33.7490987, 51.9000966, 33.9550905, 51.5073219, -1.6632409, -24.7761086, 41.06614645, 38.2661528, 37.1232245, 35.8376958, 20.5, 44.933143, 40.6375307, 44.933143, 44.933143, 44.933143, 44.933143, 44.933143, 44.933143, 44.933143, 'p', 47.5044752, -33.4377968, 44.933143, 41.8933203, 44.933143, 40.7306458, 44.933143, 28.6141793, 44.933143, 35.8376958, 28.6141793, 32.3293809, 51.5073219, 34.395342, 44.933143, 13.0801721, 13.0801721, -1.2832533, 44.933143, 44.2222023, 'p', 13.0801721, 44.933143, 39.7837304, 52.7954791, -33.8548157, 22.3511148, 'p', 35.0865692, 37.7647993, 51.5073219, 55.6052931, 23.7593572, 64.750997, 51.6211442, 33.6874388, 33.6874388, 53.9638385, 45.421106, 44.2222023, 50.0874654, 36.7044345, 54.31536155, 35.6730036, 44.933143, 28.6141793, 44.933143, 35.8376958, 'p', 31.8160381, 44.933143, 51.5073219, 64.4459613, 56.7861112, 43.157285, 40.7306458, 33.9550905, 5.5600141, 52.4006522, 'p']  +   [77.2022662, 77.3547609, 72.8882172, 7.540121, 55.1594933008754, 7.540121, -90.4800825562532, 7.540121, 77.2022662, 80.2838331, 7.540121, 7.540121, 72.8882172, 70.1223033, 78.6677428, 71.8881177, 7.540121, 77.2022662, -157.975203, 82.8488772416467, 80.2838331, -157.975203, 87.3012875, 7.540121, 78.6677428, 7.540121, 77.2022662, 77.3547609, 72.8882172, 7.540121, 55.1594933008754, 7.540121, -90.4800825562532, 7.540121, 77.2022662, 80.2838331, 7.540121, 7.540121, 72.8882172, 70.1223033, 78.6677428, 71.8881177, 7.540121, 77.2022662, -157.975203, 82.8488772416467, 80.2838331, -157.975203, 87.3012875, 7.540121, 78.6677428, 7.540121, 78.6677428, 7.540121, 80.2838331, 76.7646552, 7.540121, 7.540121, 76.895369282819, -116.9641657, -117.8055859, 75.0766, 7.540121, 77.2022662, -76.9502298, 88.3476023, 76.5119752, 77.2022662, 7.540121, 78.6677428, 77.5340719, 77.2022662, 7.540121, 7.540121, 77.2022662, 77.3547609, 7.540121, 39.1640396, 7.540121, 77.5912997, 7.540121, 'p', 1.8883335, 128.5575166, 128.5575166, -122.638103, 7.540121, 7.540121, 25.745951, 7.540121, -80.266113, -118.244476, 128.5575166, 7.540121, 31.4014928, -84.3901849, -8.4610351, -83.3881868, -0.1276474, 31.4014928, 134.755, 28.7771047294844, 140.8715343, -78.4927721, 128.5575166, 73.083333, 7.540121, -73.9634487632331, 7.540121, 7.540121, 7.540121, 7.540121, 7.540121, 7.540121, 7.540121, 'p', 19.1251107, -70.6504451, 7.540121, 12.4829321, 7.540121, -73.9866136, 7.540121, 77.2022662, 7.540121, 128.5575166, 77.2022662, -83.1137366, -0.1276474, -111.7632755, 7.540121, 80.2838331, 80.2838331, 36.8172449, 7.540121, -76.4986098, 'p', 80.2838331, 7.540121, -100.4458825, -0.540240286617432, 151.2164539, 78.6677428, 'p', 135.9033813, -122.4629897, -0.1276474, 13.0001566, 90.3788136, -147.349319, -3.9467751, -80.4363743, -80.4363743, -2.0172871, -75.690308, -76.4986098, 14.4212535, 137.3574628, -1.91802349480124, 139.763599, 7.540121, 77.2022662, 7.540121, 128.5575166, 'p', -99.5120986, 7.540121, -0.1276474, -149.680909, -4.1140518, -77.615214, -73.9866136, -83.3881868, -0.2057437, 16.9197520238885, 'p']
In [44]:
lats = list(filter(lambda a: a != 'p', lats))
In [45]:
import mplleaflet

mapdf = pd.DataFrame({'lat': lats, 'longi': longi, 'polarity':polarities[:len(lats)]})
plt.figure(figsize=(8, 8))
plt.scatter(longi, lats, c = polarities[:len(lats)])
mplleaflet.display()
Out[45]: