Skip to content

Instantly share code, notes, and snippets.

@pohmelie
Last active August 29, 2015 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pohmelie/ec2d27dbeb3ed58c5fb6 to your computer and use it in GitHub Desktop.
Save pohmelie/ec2d27dbeb3ed58c5fb6 to your computer and use it in GitHub Desktop.
PG (rubattle.net) diablo II players online

PG (rubattle.net) diablo II players online

Grabs snapshots of rubattle.net from «wayback machine» (thanks for API ;) and gets the online of Diablo II LOD server. Split results by UTC time of snapshot (don't forget UTC+4 cause moscow) by three groups. Build some nice graph to svg via pygal.

Requirements

  • python3
  • requests
  • beautifulsoup4
  • pygal

Result

result

import datetime
import shelve
import json
import operator
import requests
from bs4 import BeautifulSoup as bs
import pygal
class SnapshotNotAvailable(Exception):
pass
def request_wayback(t):
r = requests.get(
"http://archive.org/wayback/available",
params={
"url": "http://rubattle.net",
"timestamp": t.strftime("%Y%m%d"),
}
)
info = json.loads(r.text)
snap = info["archived_snapshots"]["closest"]
if snap["available"]:
return (
datetime.datetime.strptime(snap["timestamp"], "%Y%m%d%H%M%S"),
snap["url"]
)
else:
raise SnapshotNotAvailable
def request_users(url):
r = requests.get(url)
phtml = bs(r.text)
status = phtml.find(id="serverStatusList")
for count, name in zip(status("span"), status("a")):
yield name.text, int(count.text)
def request_and_store(t, db):
t, url = request_wayback(t)
key = t.strftime(datetime_format)
if key not in db:
online = tuple(request_users(url))
db[key] = online
db.sync()
print(len(db), t, online)
return t
def find_all_times(left, right, db):
print("->", left, right)
dt = (right - left) / 2
if dt >= delta:
mid = left + dt
t = request_and_store(mid, db)
if left <= t <= right:
find_all_times(left, min(t, mid), db)
find_all_times(max(t, mid), right, db)
with shelve.open("store.shelve") as db:
datetime_format = "%Y-%m-%d-%H"
delta = datetime.timedelta(seconds=60 * 60)
default_start = datetime.datetime(year=2010, month=1, day=1).strftime(datetime_format)
left = request_and_store(datetime.datetime.strptime(max(db, default=default_start), datetime_format), db)
right = request_and_store(datetime.datetime.now(), db)
find_all_times(left, right, db)
print(str.format("Found {} pages", len(db)))
plot = pygal.DateY(
show_minor_x_labels=False,
x_label_rotation=30,
x_labels_major_count=7,
x_label_format="%Y-%m-%d",
legend_at_bottom=True,
include_x_axis=True,
)
plot.title = "PG players online per hours interval"
d2_tag = "Diablo II LOD"
get_d2_point = lambda key: (datetime.datetime.strptime(key, datetime_format), dict(db[key])[d2_tag])
night, day, prime = [], [], []
for t, c in sorted(map(get_d2_point, db)):
t += datetime.timedelta(hours=4) # utc+4 moscow
point = (t, c)
if 1 <= t.hour < 10:
night.append(point)
elif 10 <= t.hour < 18:
day.append(point)
else:
prime.append(point)
for data, name in zip((night, day, prime), ("night [1; 10)", "day [10; 18)", "prime [18; 1)")):
plot.add("Diablo II " + name, data)
plot.render_to_file("PG players online.svg")
Display the source blob
Display the rendered blob
Raw
<?xml version='1.0' encoding='utf-8'?>
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="chart-05abf435-3e62-4fc0-b7df-1be1ce56766d" class="pygal-chart" viewBox="0 0 800 600"><!--Generated with pygal 1.7.0 (lxml) ©Kozea 2011-2014 on 2015-02-20--><!--http://pygal.org--><!--http://github.com/Kozea/pygal--><defs><style type="text/css">#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .title{font-family:"monospace";font-size:16px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .legends .legend text{font-family:"monospace";font-size:14px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis text{font-family:"monospace";font-size:10px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis text.major{font-family:"monospace";font-size:10px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .series text{font-family:"monospace";font-size:8px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .tooltip text{font-family:"monospace";font-size:16px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d text.no_data{font-size:64px}
#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d{background-color:black}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d path,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d rect,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d circle{-webkit-transition:250ms;-moz-transition:250ms;transition:250ms}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .graph &gt; .background{fill:black}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .plot &gt; .background{fill:#111}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .graph{fill:#999}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d text.no_data{fill:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .title{fill:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .legends .legend text{fill:#999}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .legends .legend:hover text{fill:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis .line{stroke:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis .guide.line{stroke:#555}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis .major.line{stroke:#999}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis text.major{stroke:#eee;fill:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.y .guides:hover .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .line-graph .axis.x .guides:hover .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .stackedline-graph .axis.x .guides:hover .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .xy-graph .axis.x .guides:hover .guide.line{stroke:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis .guides:hover text{fill:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .reactive{fill-opacity:.8}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .reactive.active,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .active .reactive{fill-opacity:.4}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .series{stroke-width:1.0;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:0,0}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .series text{fill:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .tooltip rect{fill:#111;stroke:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .tooltip text{fill:#eee}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .map-element{fill:#999;stroke:#555 !important;opacity:.9;stroke-width:3;-webkit-transition:250ms;-moz-transition:250ms;-o-transition:250ms;transition:250ms}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .map-element:hover{opacity:1;stroke-width:10}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-0,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-0 a:visited{stroke:#ff5995;fill:#ff5995}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-1,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-1 a:visited{stroke:#b6e354;fill:#b6e354}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-2,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-2 a:visited{stroke:#feed6c;fill:#feed6c}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-3,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-3 a:visited{stroke:#8cedff;fill:#8cedff}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-4,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-4 a:visited{stroke:#9e6ffe;fill:#9e6ffe}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-5,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-5 a:visited{stroke:#899ca1;fill:#899ca1}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-6,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-6 a:visited{stroke:#f8f8f2;fill:#f8f8f2}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-7,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-7 a:visited{stroke:#bf4646;fill:#bf4646}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-8,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-8 a:visited{stroke:#516083;fill:#516083}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-9,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-9 a:visited{stroke:#f92672;fill:#f92672}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-10,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-10 a:visited{stroke:#82b414;fill:#82b414}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-11,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-11 a:visited{stroke:#fd971f;fill:#fd971f}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-12,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-12 a:visited{stroke:#56c2d6;fill:#56c2d6}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-13,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-13 a:visited{stroke:#808384;fill:#808384}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-14,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-14 a:visited{stroke:#8c54fe;fill:#8c54fe}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-15,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .color-15 a:visited{stroke:#465457;fill:#465457}
#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d text.no_data{text-anchor:middle}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .guide.line{fill-opacity:0}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .centered{text-anchor:middle}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .title{text-anchor:middle}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .legends .legend text{fill-opacity:1}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.x text{text-anchor:middle}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.x:not(.web) text[transform]{text-anchor:start}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.y text{text-anchor:end}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.y2 text{text-anchor:start}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.y .logarithmic text:not(.major),#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.y2 .logarithmic text:not(.major){font-size:50%}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis .guide.line{stroke-dasharray:4,4}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis .major.guide.line{stroke-dasharray:6,6}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis text.major{stroke-width:0.5px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .horizontal .axis.y .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .horizontal .axis.y2 .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .vertical .axis.x .guide.line{opacity:0}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .horizontal .axis.always_show .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .vertical .axis.always_show .guide.line{opacity:1 !important}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.y .guides:hover .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.y2 .guides:hover .guide.line,#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis.x .guides:hover .guide.line{opacity:1}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .axis .guides:hover text{opacity:1}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .nofill{fill:none}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .subtle-fill{fill-opacity:.2}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .dot{stroke-width:1px;fill-opacity:1}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .dot.active{stroke-width:5px}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .series text{stroke:none}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .series text.active{opacity:1}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .tooltip rect{fill-opacity:0.8}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .tooltip text{fill-opacity:1}#chart-05abf435-3e62-4fc0-b7df-1be1ce56766d .tooltip text tspan.label{fill-opacity:.8}</style><script type="text/javascript">window.config = {"dots_size": 2.5, "x_value_formatter": null, "strict": false, "label_font_size": 10, "stack_from_top": false, "include_x_axis": true, "interpolation_precision": 250, "show_x_labels": true, "range": null, "show_x_guides": false, "x_labels_major_every": null, "x_labels_major_count": 7, "y_labels_major_every": null, "legend_at_bottom_columns": null, "title_font_size": 16, "inner_radius": 0, "y_labels_major": null, "fill": false, "legend_font_size": 14, "js": ["http://kozea.github.io/pygal.js/javascripts/svg.jquery.js", "http://kozea.github.io/pygal.js/javascripts/pygal-tooltips.js"], "mode": null, "width": 800, "pretty_print": false, "no_prefix": false, "margin_bottom": null, "y_label_rotation": 0, "order_min": null, "major_label_font_size": 10, "show_only_major_dots": false, "print_zeroes": false, "y_labels": null, "margin_left": null, "show_minor_x_labels": false, "xrange": null, "tooltip_border_radius": 0, "legend_box_size": 12, "show_y_labels": true, "x_label_rotation": 30, "spacing": 10, "truncate_legend": null, "style": {"background": "black", "foreground_light": "#eee", "opacity_hover": ".4", "font_family": "monospace", "stroke_width": 1.0, "opacity": ".8", "plot_background": "#111", "foreground": "#999", "transition": "250ms", "stroke_dasharray": "0,0", "foreground_dark": "#555", "colors": ["#ff5995", "#b6e354", "#feed6c", "#8cedff", "#9e6ffe", "#899ca1", "#f8f8f2", "#bf4646", "#516083", "#f92672", "#82b414", "#fd971f", "#56c2d6", "#808384", "#8c54fe", "#465457"], "stroke_style": "round"}, "y_title": null, "no_data_text": "No data", "x_labels": null, "show_dots": true, "title": "PG players online per hours interval", "rounded_bars": null, "x_title": null, "css": ["style.css", "graph.css"], "stroke": true, "zero": 0, "interpolation_parameters": {}, "half_pie": false, "legend_at_bottom": true, "show_minor_y_labels": true, "print_values": false, "interpolate": null, "margin_right": null, "margin": 20, "y_labels_major_count": null, "height": 600, "disable_xml_declaration": false, "value_formatter": null, "show_y_guides": true, "value_font_size": 8, "no_data_font_size": 64, "show_legend": true, "human_readable": false, "explicit_size": false, "x_labels_major": null, "tooltip_font_size": 16, "x_label_format": "%Y-%m-%d", "logarithmic": false, "missing_value_fill_truncation": "x", "margin_top": null, "truncate_label": null}</script><script type="text/javascript" xlink:href="http://kozea.github.io/pygal.js/javascripts/svg.jquery.js"/><script type="text/javascript" xlink:href="http://kozea.github.io/pygal.js/javascripts/pygal-tooltips.js"/></defs><title>PG players online per hours interval</title><g class="graph datetimeline-graph vertical"><rect class="background" height="600" width="800" x="0" y="0"/><g class="plot" transform="translate(66, 46)"><rect class="background" height="422.0" width="635.273103968574" x="0" y="0"/><g class="axis y"><g class="guides"><path class="major line" d="M0.000000 413.884615 h635.273104"/><text class="major" x="-5" y="417.38461538461536">0.0</text></g><g class="guides"><path class="guide line" d="M0.000000 374.335957 h635.273104"/><text class="" x="-5" y="377.8359574149048">100.0</text></g><g class="guides"><path class="guide line" d="M0.000000 334.787299 h635.273104"/><text class="" x="-5" y="338.2872994451942">200.0</text></g><g class="guides"><path class="guide line" d="M0.000000 295.238641 h635.273104"/><text class="" x="-5" y="298.7386414754836">300.0</text></g><g class="guides"><path class="guide line" d="M0.000000 255.689984 h635.273104"/><text class="" x="-5" y="259.18998350577294">400.0</text></g><g class="guides"><path class="major guide line" d="M0.000000 216.141326 h635.273104"/><text class="major" x="-5" y="219.64132553606237">500.0</text></g><g class="guides"><path class="guide line" d="M0.000000 176.592668 h635.273104"/><text class="" x="-5" y="180.09266756635176">600.0</text></g><g class="guides"><path class="guide line" d="M0.000000 137.044010 h635.273104"/><text class="" x="-5" y="140.54400959664116">700.0</text></g><g class="guides"><path class="guide line" d="M0.000000 97.495352 h635.273104"/><text class="" x="-5" y="100.99535162693059">800.0</text></g><g class="guides"><path class="guide line" d="M0.000000 57.946694 h635.273104"/><text class="" x="-5" y="61.44669365721995">900.0</text></g><g class="guides"><path class="major guide line" d="M0.000000 18.398036 h635.273104"/><text class="major" x="-5" y="21.898035687509378">1000.0</text></g></g><g class="axis x"><path class="line" d="M0.000000 0.000000 v422.000000"/><g class="guides"><path class="major guide line" d="M34.415226 0.000000 v422.000000"/><text class="major" x="34.41522557895145" y="437.0" transform="rotate(30 34.415226 437.000000)">2010-07-24T23:33:20</text></g><g class="guides"><path class="major guide line" d="M118.678948 0.000000 v422.000000"/><text class="major" x="118.67894831664249" y="437.0" transform="rotate(30 118.678948 437.000000)">2011-03-13T10:06:40</text></g><g class="guides"><path class="major guide line" d="M202.942671 0.000000 v422.000000"/><text class="major" x="202.94267105433357" y="437.0" transform="rotate(30 202.942671 437.000000)">2011-10-30T22:40:00</text></g><g class="guides"><path class="major guide line" d="M287.206394 0.000000 v422.000000"/><text class="major" x="287.2063937920246" y="437.0" transform="rotate(30 287.206394 437.000000)">2012-06-18T10:13:20</text></g><g class="guides"><path class="major guide line" d="M371.470117 0.000000 v422.000000"/><text class="major" x="371.47011652971565" y="437.0" transform="rotate(30 371.470117 437.000000)">2013-02-04T21:46:40</text></g><g class="guides"><path class="major guide line" d="M455.733839 0.000000 v422.000000"/><text class="major" x="455.7338392674068" y="437.0" transform="rotate(30 455.733839 437.000000)">2013-09-24T09:20:00</text></g><g class="guides"><path class="major guide line" d="M582.129423 0.000000 v422.000000"/><text class="major" x="582.1294233739434" y="437.0" transform="rotate(30 582.129423 437.000000)">2014-09-06T14:40:00</text></g></g><g class="series serie-0 color-0"><path class="line reactive nofill" d="M47.162642 317.781377 L81.395622 382.245689 130.523057 232.356275 161.100677 294.447668 161.100677 357.725521 181.485757 356.934548 198.594663 359.702954 219.343762 343.883491 245.553150 199.926376 249.557362 315.408457 294.695753 290.888289 321.997200 363.262333 322.725238 291.679262 323.453277 276.255286 324.545335 287.724396 324.909354 319.758809 325.637392 318.176863 326.001412 325.691108 337.650029 357.330034 351.118742 271.509447 356.215012 280.605638 363.859417 326.482081 396.621152 366.426226 413.002020 361.284900 427.198772 303.939346 437.755331 319.363323 457.048353 355.352602 505.462918 325.691108 620.872198 374.335957"/></g><g class="series serie-1 color-1"><path class="line reactive nofill" d="M12.216790 181.733993 L23.865407 181.338507 70.475043 237.893087 92.680219 340.719598 101.780701 201.903809 112.337261 254.503524 139.623539 272.695906 172.385275 241.056980 230.628360 180.547533 267.758327 179.756560 273.582635 200.717349 309.256525 237.102114 321.269161 316.594917 353.302858 240.266007 398.441249 324.900135 413.730059 262.808742 433.751119 303.148373 445.035717 240.266007 469.060990 283.769531 555.333560 297.611561"/></g><g class="series serie-2 color-2"><path class="line reactive nofill" d="M12.216790 202.299295 L35.150005 167.891963 58.447239 184.897886 102.144721 127.156845 120.345685 146.140201 149.816079 136.648523 189.494181 88.794647 196.774567 149.304094 208.423184 205.858674 209.151222 146.535688 236.088649 88.794647 259.749902 8.115385 263.026076 29.867146 279.406944 106.591543 286.687329 115.687734 322.361219 263.599715 322.725238 197.948943 325.273373 254.503524 358.035109 229.983356 506.190956 191.225671 623.056314 247.384765"/></g></g><g class="titles"><text class="title plot_title" x="400.0" y="26">PG players online per hours interval</text></g><g class="plot overlay" transform="translate(66, 46)"><g class="series serie-0 color-0"><g class="dots"><circle class="dot reactive tooltip-trigger" cx="47.162641554709346" cy="317.7813765182186" r="2.5"/><desc class="value">243</desc><desc class="x top">47.162641554709346</desc><desc class="y top">317.7813765182186</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="81.39562155412372" cy="382.2456890088469" r="2.5"/><desc class="value">80</desc><desc class="x top">81.39562155412372</desc><desc class="y top">382.2456890088469</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="130.52305718465237" cy="232.3562753036437" r="2.5"/><desc class="value">459</desc><desc class="x top">130.52305718465237</desc><desc class="y top">232.3562753036437</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="161.1006768917057" cy="294.44766831608933" r="2.5"/><desc class="value">302</desc><desc class="x top">161.1006768917057</desc><desc class="y top">294.44766831608933</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="161.1006768917057" cy="357.72552106762635" r="2.5"/><desc class="value">142</desc><desc class="x top">161.1006768917057</desc><desc class="y top">357.72552106762635</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="181.48575669640792" cy="356.9345479082321" r="2.5"/><desc class="value">144</desc><desc class="x top">181.48575669640792</desc><desc class="y top">356.9345479082321</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="198.5946629610687" cy="359.70295396611186" r="2.5"/><desc class="value">137</desc><desc class="x top">198.5946629610687</desc><desc class="y top">359.70295396611186</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="219.34376204799776" cy="343.8834907782276" r="2.5"/><desc class="value">177</desc><desc class="x top">219.34376204799776</desc><desc class="y top">343.8834907782276</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="245.5531503683292" cy="199.92637576848102" r="2.5"/><desc class="value">541</desc><desc class="x ">245.5531503683292</desc><desc class="y ">199.92637576848102</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="249.55736247282428" cy="315.408457040036" r="2.5"/><desc class="value">249</desc><desc class="x top">249.55736247282428</desc><desc class="y top">315.408457040036</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="294.6957534689506" cy="290.88828909881545" r="2.5"/><desc class="value">311</desc><desc class="x top">294.6957534689506</desc><desc class="y top">290.88828909881545</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="321.99719963596255" cy="363.2623331833858" r="2.5"/><desc class="value">128</desc><desc class="x left top">321.99719963596255</desc><desc class="y left top">363.2623331833858</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="322.7252382004162" cy="291.67926225820963" r="2.5"/><desc class="value">309</desc><desc class="x left top">322.7252382004162</desc><desc class="y left top">291.67926225820963</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="323.4532767648698" cy="276.2552856500225" r="2.5"/><desc class="value">348</desc><desc class="x left top">323.4532767648698</desc><desc class="y left top">276.2552856500225</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="324.5453346115503" cy="287.7243964612386" r="2.5"/><desc class="value">319</desc><desc class="x left top">324.5453346115503</desc><desc class="y left top">287.7243964612386</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="324.9093538937771" cy="319.75880941670414" r="2.5"/><desc class="value">238</desc><desc class="x left top">324.9093538937771</desc><desc class="y left top">319.75880941670414</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="325.63739245823075" cy="318.17686309791577" r="2.5"/><desc class="value">242</desc><desc class="x left top">325.63739245823075</desc><desc class="y left top">318.17686309791577</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="326.0014117404576" cy="325.69110811216075" r="2.5"/><desc class="value">223</desc><desc class="x left top">326.0014117404576</desc><desc class="y left top">325.69110811216075</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="337.650028771716" cy="357.3300344879292" r="2.5"/><desc class="value">143</desc><desc class="x left top">337.650028771716</desc><desc class="y left top">357.3300344879292</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="351.1187422141085" cy="271.5094466936572" r="2.5"/><desc class="value">360</desc><desc class="x left top">351.1187422141085</desc><desc class="y left top">271.5094466936572</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="356.2150121652841" cy="280.60563802669066" r="2.5"/><desc class="value">337</desc><desc class="x left top">356.2150121652841</desc><desc class="y left top">280.60563802669066</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="363.8594170920474" cy="326.48208127155493" r="2.5"/><desc class="value">221</desc><desc class="x left top">363.8594170920474</desc><desc class="y left top">326.48208127155493</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="396.6211524924617" cy="366.42622582096266" r="2.5"/><desc class="value">120</desc><desc class="x left top">396.6211524924617</desc><desc class="y left top">366.42622582096266</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="413.00202019266885" cy="361.2849002849003" r="2.5"/><desc class="value">133</desc><desc class="x left top">413.00202019266885</desc><desc class="y left top">361.2849002849003</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="427.1987721995151" cy="303.9393462288199" r="2.5"/><desc class="value">278</desc><desc class="x left top">427.1987721995151</desc><desc class="y left top">303.9393462288199</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="437.755331384093" cy="319.36332283700705" r="2.5"/><desc class="value">239</desc><desc class="x left top">437.755331384093</desc><desc class="y left top">319.36332283700705</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="457.0483533421147" cy="355.3526015894437" r="2.5"/><desc class="value">148</desc><desc class="x left top">457.0483533421147</desc><desc class="y left top">355.3526015894437</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="505.4629178782825" cy="325.69110811216075" r="2.5"/><desc class="value">223</desc><desc class="x left top">505.4629178782825</desc><desc class="y left top">325.69110811216075</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="620.8721978142789" cy="374.3359574149048" r="2.5"/><desc class="value">100</desc><desc class="x left top">620.8721978142789</desc><desc class="y left top">374.3359574149048</desc></g></g><g class="series serie-1 color-1"><g class="dots"><circle class="dot reactive tooltip-trigger" cx="12.216790460934115" cy="181.73399310241413" r="2.5"/><desc class="value">587</desc><desc class="x ">12.216790460934115</desc><desc class="y ">181.73399310241413</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="23.865407492192524" cy="181.33850652271704" r="2.5"/><desc class="value">588</desc><desc class="x ">23.865407492192524</desc><desc class="y ">181.33850652271704</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="70.47504308731897" cy="237.8930874194032" r="2.5"/><desc class="value">445</desc><desc class="x top">70.47504308731897</desc><desc class="y top">237.8930874194032</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="92.68021930315531" cy="340.71959814065076" r="2.5"/><desc class="value">185</desc><desc class="x top">92.68021930315531</desc><desc class="y top">340.71959814065076</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="101.78070135882595" cy="201.90380866696654" r="2.5"/><desc class="value">536</desc><desc class="x ">101.78070135882595</desc><desc class="y ">201.90380866696654</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="112.33726054340387" cy="254.50352376668167" r="2.5"/><desc class="value">403</desc><desc class="x top">112.33726054340387</desc><desc class="y top">254.50352376668167</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="139.623539240323" cy="272.69590643274853" r="2.5"/><desc class="value">357</desc><desc class="x top">139.623539240323</desc><desc class="y top">272.69590643274853</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="172.38527464073726" cy="241.05698005698005" r="2.5"/><desc class="value">437</desc><desc class="x top">172.38527464073726</desc><desc class="y top">241.05698005698005</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="230.62835979702936" cy="180.54753336332283" r="2.5"/><desc class="value">590</desc><desc class="x ">230.62835979702936</desc><desc class="y ">180.54753336332283</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="267.7583265841655" cy="179.75656020392861" r="2.5"/><desc class="value">592</desc><desc class="x ">267.7583265841655</desc><desc class="y ">179.75656020392861</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="273.58263509979474" cy="200.71734892787524" r="2.5"/><desc class="value">539</desc><desc class="x ">273.58263509979474</desc><desc class="y ">200.71734892787524</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="309.2565247580236" cy="237.102114260009" r="2.5"/><desc class="value">447</desc><desc class="x top">309.2565247580236</desc><desc class="y top">237.102114260009</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="321.2691610715089" cy="316.5949167791273" r="2.5"/><desc class="value">246</desc><desc class="x left top">321.2691610715089</desc><desc class="y left top">316.5949167791273</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="353.3028579074695" cy="240.26600689758584" r="2.5"/><desc class="value">439</desc><desc class="x left top">353.3028579074695</desc><desc class="y left top">240.26600689758584</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="398.44124890359586" cy="324.9001349527665" r="2.5"/><desc class="value">225</desc><desc class="x left top">398.44124890359586</desc><desc class="y left top">324.9001349527665</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="413.7300587571225" cy="262.8087419403209" r="2.5"/><desc class="value">382</desc><desc class="x left top">413.7300587571225</desc><desc class="y left top">262.8087419403209</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="433.7511192795979" cy="303.1483730694257" r="2.5"/><desc class="value">280</desc><desc class="x left top">433.7511192795979</desc><desc class="y left top">303.1483730694257</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="445.03571702862945" cy="240.26600689758584" r="2.5"/><desc class="value">439</desc><desc class="x left top">445.03571702862945</desc><desc class="y left top">240.26600689758584</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="469.06098965559994" cy="283.7695306642675" r="2.5"/><desc class="value">329</desc><desc class="x left top">469.06098965559994</desc><desc class="y left top">283.7695306642675</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="555.3335595433576" cy="297.6115609536662" r="2.5"/><desc class="value">294</desc><desc class="x left top">555.3335595433576</desc><desc class="y left top">297.6115609536662</desc></g></g><g class="series serie-2 color-2"><g class="dots"><circle class="dot reactive tooltip-trigger" cx="12.216790460934115" cy="202.29929524666366" r="2.5"/><desc class="value">535</desc><desc class="x ">12.216790460934115</desc><desc class="y ">202.29929524666366</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="35.15000524122411" cy="167.89196281301543" r="2.5"/><desc class="value">622</desc><desc class="x ">35.15000524122411</desc><desc class="y ">167.89196281301543</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="58.447239303740936" cy="184.89788573999098" r="2.5"/><desc class="value">579</desc><desc class="x ">58.447239303740936</desc><desc class="y ">184.89788573999098</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="102.14472064105277" cy="127.15684510421352" r="2.5"/><desc class="value">725</desc><desc class="x ">102.14472064105277</desc><desc class="y ">127.15684510421352</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="120.34568475239404" cy="146.14020092967462" r="2.5"/><desc class="value">677</desc><desc class="x ">120.34568475239404</desc><desc class="y ">146.14020092967462</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="149.8160791426741" cy="136.64852301694407" r="2.5"/><desc class="value">701</desc><desc class="x ">149.8160791426741</desc><desc class="y ">136.64852301694407</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="189.49418090539805" cy="88.79464687359422" r="2.5"/><desc class="value">822</desc><desc class="x ">189.49418090539805</desc><desc class="y ">88.79464687359422</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="196.77456654993458" cy="149.30409356725147" r="2.5"/><desc class="value">669</desc><desc class="x ">196.77456654993458</desc><desc class="y ">149.30409356725147</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="208.42318358119297" cy="205.8586744639376" r="2.5"/><desc class="value">526</desc><desc class="x ">208.42318358119297</desc><desc class="y ">205.8586744639376</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="209.15122214564664" cy="146.5356875093717" r="2.5"/><desc class="value">676</desc><desc class="x ">209.15122214564664</desc><desc class="y ">146.5356875093717</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="236.08864903043172" cy="88.79464687359422" r="2.5"/><desc class="value">822</desc><desc class="x ">236.08864903043172</desc><desc class="y ">88.79464687359422</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="259.7499023751754" cy="8.115384615384585" r="2.5"/><desc class="value">1026</desc><desc class="x ">259.7499023751754</desc><desc class="y ">8.115384615384585</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="263.0260759152168" cy="29.867146498725447" r="2.5"/><desc class="value">971</desc><desc class="x ">263.0260759152168</desc><desc class="y ">29.867146498725447</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="279.4069436154239" cy="106.59154295996399" r="2.5"/><desc class="value">777</desc><desc class="x ">279.4069436154239</desc><desc class="y ">106.59154295996399</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="286.68732925996045" cy="115.68773429299745" r="2.5"/><desc class="value">754</desc><desc class="x ">286.68732925996045</desc><desc class="y ">115.68773429299745</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="322.36121891818937" cy="263.5997150997151" r="2.5"/><desc class="value">380</desc><desc class="x left top">322.36121891818937</desc><desc class="y left top">263.5997150997151</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="322.7252382004162" cy="197.9489428699955" r="2.5"/><desc class="value">546</desc><desc class="x left">322.7252382004162</desc><desc class="y left">197.9489428699955</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="325.27337317600393" cy="254.50352376668167" r="2.5"/><desc class="value">403</desc><desc class="x left top">325.27337317600393</desc><desc class="y left top">254.50352376668167</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="358.0351085764182" cy="229.98335582546108" r="2.5"/><desc class="value">465</desc><desc class="x left top">358.0351085764182</desc><desc class="y left top">229.98335582546108</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="506.19095644273614" cy="191.22567101514468" r="2.5"/><desc class="value">563</desc><desc class="x left">506.19095644273614</desc><desc class="y left">191.22567101514468</desc></g><g class="dots"><circle class="dot reactive tooltip-trigger" cx="623.0563135076399" cy="247.38476533213375" r="2.5"/><desc class="value">421</desc><desc class="x left top">623.0563135076399</desc><desc class="y left top">247.38476533213375</desc></g></g></g><g class="plot text-overlay" transform="translate(66, 46)"><g class="series serie-0 color-0"/><g class="series serie-1 color-1"/><g class="series serie-2 color-2"/></g><g class="plot tooltip-overlay" transform="translate(66, 46)"><g class="tooltip" style="opacity: 0" transform="translate(0 0)"><a><rect class="tooltip-box" height="0" rx="0" ry="0" width="0"/><text class="text"><tspan class="label"/><tspan class="value"/></text></a></g></g><g class="legends" transform="translate(76, 545)"><g class="legend reactive activate-serie" id="activate-serie-0"><rect class="color-0 reactive" height="12" width="12" x="0.0" y="1.0"/><text x="17.0" y="11.2">Diablo II night [1; 10)</text></g><g class="legend reactive activate-serie" id="activate-serie-1"><rect class="color-1 reactive" height="12" width="12" x="317.636551984287" y="1.0"/><text x="334.636551984287" y="11.2">Diablo II day [10; 18)</text></g><g class="legend reactive activate-serie" id="activate-serie-2"><rect class="color-2 reactive" height="12" width="12" x="0.0" y="22.0"/><text x="17.0" y="32.2">Diablo II prime [18; 1)</text></g></g></g></svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment