diff --git a/README.md b/README.md index e646a6c..8614d7b 100644 --- a/README.md +++ b/README.md @@ -2828,11 +2828,11 @@ img.show() from PIL import ImageDraw <Draw> = ImageDraw.Draw(<Image>) # Object for adding 2D graphics to the image. <Draw>.point((x, y)) # Draws a point. Truncates floats into ints. -<Draw>.line((x1, y1, x2, y2 [, ...])) # To get anti-aliasing use Image's resize(). +<Draw>.line((x1, y1, x2, y2 [, ...])) # For anti-aliasing use <Image>.resize((w, h)). <Draw>.arc((x1, y1, x2, y2), deg1, deg2) # Draws in clockwise dir. Also pieslice(). <Draw>.rectangle((x1, y1, x2, y2)) # Also rounded_rectangle(), regular_polygon(). -<Draw>.polygon((x1, y1, x2, y2, ...)) # Last point gets connected to the first. -<Draw>.ellipse((x1, y1, x2, y2)) # To rotate use Image's rotate() and paste(). +<Draw>.polygon((x1, y1, x2, y2, ...)) # Last point gets connected to the first one. +<Draw>.ellipse((x1, y1, x2, y2)) # To rotate use <Image>.rotate(anticlock_deg). <Draw>.text((x, y), <str>, font=<Font>) # `<Font> = ImageFont.truetype(<path>, size)`. ``` * **Use `'fill=<color>'` to set the primary color.** @@ -3457,7 +3457,7 @@ px.line(df, x='Date', y='Total Deaths per Million', color='Continent').show() ```python # $ pip3 install pandas lxml selenium plotly -import pandas as pd, selenium.webdriver, plotly.graph_objects as go +import pandas as pd, selenium.webdriver, io, plotly.graph_objects as go def main(): covid, (bitcoin, gold, dow) = get_covid_cases(), get_tickers() @@ -3466,7 +3466,7 @@ def main(): def get_covid_cases(): url = 'https://covid.ourworldindata.org/data/owid-covid-data.csv' - df = pd.read_csv(url, usecols=['location', 'date', 'total_cases'], parse_dates=['date']) + df = pd.read_csv(url, parse_dates=['date']) df = df[df.location == 'World'] s = df.set_index('date').total_cases return s.rename('Total Cases') @@ -3482,7 +3482,7 @@ def get_ticker(driver, name, symbol): driver.get(url + '?period1=1579651200&period2=9999999999') if buttons := driver.find_elements('xpath', '//button[@name="reject"]'): buttons[0].click() - dataframes = pd.read_html(driver.page_source, parse_dates=['Date']) + dataframes = pd.read_html(io.StringIO(driver.page_source), parse_dates=['Date']) s = dataframes[0].set_index('Date').Open return s.rename(name) @@ -3529,7 +3529,7 @@ import <cython_script> # Script must be saved with '.pyx' extens #### Definitions: * **All `'cdef'` definitions are optional, but they contribute to the speed-up.** -* **Also supports C pointers via `'*'` and `'&'`, structs, unions, and enums.** +* **Also supports C pointers (via `'*'` and `'&'`), structs, unions and enums.** ```python cdef <ctype/type> <var_name> [= <obj>] diff --git a/index.html b/index.html index 75c7b34..3dac48a 100644 --- a/index.html +++ b/index.html @@ -56,7 +56,7 @@ <body> <header> - <aside>February 28, 2025</aside> + <aside>March 2, 2025</aside> <a href="https://gto76.github.io" rel="author">Jure Šorn</a> </header> @@ -2313,11 +2313,11 @@ img.show() <div><h3 id="imagedraw">Image Draw</h3><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> ImageDraw <Draw> = ImageDraw.Draw(<Image>) <span class="hljs-comment"># Object for adding 2D graphics to the image.</span> <Draw>.point((x, y)) <span class="hljs-comment"># Draws a point. Truncates floats into ints.</span> -<Draw>.line((x1, y1, x2, y2 [, ...])) <span class="hljs-comment"># To get anti-aliasing use Image's resize().</span> +<Draw>.line((x1, y1, x2, y2 [, ...])) <span class="hljs-comment"># For anti-aliasing use <Image>.resize((w, h)).</span> <Draw>.arc((x1, y1, x2, y2), deg1, deg2) <span class="hljs-comment"># Draws in clockwise dir. Also pieslice().</span> <Draw>.rectangle((x1, y1, x2, y2)) <span class="hljs-comment"># Also rounded_rectangle(), regular_polygon().</span> -<Draw>.polygon((x1, y1, x2, y2, ...)) <span class="hljs-comment"># Last point gets connected to the first.</span> -<Draw>.ellipse((x1, y1, x2, y2)) <span class="hljs-comment"># To rotate use Image's rotate() and paste().</span> +<Draw>.polygon((x1, y1, x2, y2, ...)) <span class="hljs-comment"># Last point gets connected to the first one.</span> +<Draw>.ellipse((x1, y1, x2, y2)) <span class="hljs-comment"># To rotate use <Image>.rotate(anticlock_deg).</span> <Draw>.text((x, y), <str>, font=<Font>) <span class="hljs-comment"># `<Font> = ImageFont.truetype(<path>, size)`.</span> </code></pre></div> @@ -2816,7 +2816,7 @@ px.line(df, x=<span class="hljs-string">'Date'</span>, y=<span class="hljs-strin <div><h4 id="displaysamultiaxislinechartoftotalcoronaviruscasesandchangesinpricesofbitcoindowjonesandgold">Displays a multi-axis line chart of total coronavirus cases and changes in prices of Bitcoin, Dow Jones and gold:</h4><p></p><div id="e23ccacc-a456-478b-b467-7282a2165921" class="plotly-graph-div" style="height:287px; width:935px;"></div><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install pandas lxml selenium plotly</span> -<span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd, selenium.webdriver, plotly.graph_objects <span class="hljs-keyword">as</span> go +<span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd, selenium.webdriver, io, plotly.graph_objects <span class="hljs-keyword">as</span> go <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">main</span><span class="hljs-params">()</span>:</span> covid, (bitcoin, gold, dow) = get_covid_cases(), get_tickers() @@ -2825,7 +2825,7 @@ px.line(df, x=<span class="hljs-string">'Date'</span>, y=<span class="hljs-strin <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get_covid_cases</span><span class="hljs-params">()</span>:</span> url = <span class="hljs-string">'https://covid.ourworldindata.org/data/owid-covid-data.csv'</span> - df = pd.read_csv(url, usecols=[<span class="hljs-string">'location'</span>, <span class="hljs-string">'date'</span>, <span class="hljs-string">'total_cases'</span>], parse_dates=[<span class="hljs-string">'date'</span>]) + df = pd.read_csv(url, parse_dates=[<span class="hljs-string">'date'</span>]) df = df[df.location == <span class="hljs-string">'World'</span>] s = df.set_index(<span class="hljs-string">'date'</span>).total_cases <span class="hljs-keyword">return</span> s.rename(<span class="hljs-string">'Total Cases'</span>) @@ -2841,7 +2841,7 @@ px.line(df, x=<span class="hljs-string">'Date'</span>, y=<span class="hljs-strin driver.get(url + <span class="hljs-string">'?period1=1579651200&period2=9999999999'</span>) <span class="hljs-keyword">if</span> buttons := driver.find_elements(<span class="hljs-string">'xpath'</span>, <span class="hljs-string">'//button[@name="reject"]'</span>): buttons[<span class="hljs-number">0</span>].click() - dataframes = pd.read_html(driver.page_source, parse_dates=[<span class="hljs-string">'Date'</span>]) + dataframes = pd.read_html(io.StringIO(driver.page_source), parse_dates=[<span class="hljs-string">'Date'</span>]) s = dataframes[<span class="hljs-number">0</span>].set_index(<span class="hljs-string">'Date'</span>).Open <span class="hljs-keyword">return</span> s.rename(name) @@ -2885,7 +2885,7 @@ px.line(df, x=<span class="hljs-string">'Date'</span>, y=<span class="hljs-strin <div><h4 id="definitions">Definitions:</h4><ul> <li><strong>All <code class="python hljs"><span class="hljs-string">'cdef'</span></code> definitions are optional, but they contribute to the speed-up.</strong></li> -<li><strong>Also supports C pointers via <code class="python hljs"><span class="hljs-string">'*'</span></code> and <code class="python hljs"><span class="hljs-string">'&'</span></code>, structs, unions, and enums.</strong></li> +<li><strong>Also supports C pointers (via <code class="python hljs"><span class="hljs-string">'*'</span></code> and <code class="python hljs"><span class="hljs-string">'&'</span></code>), structs, unions and enums.</strong></li> </ul><pre><code class="python language-python hljs"><span class="hljs-keyword">cdef</span> <ctype/type> <var_name> [= <obj>] <span class="hljs-keyword">cdef</span> <ctype>[n_elements] <var_name> [= <coll_of_nums>] <span class="hljs-keyword">cdef</span> <ctype/type/void> <func_name>(<ctype/type> <arg_name>): ... @@ -2942,7 +2942,7 @@ $ deactivate <span class="hljs-comment"># Deactivates the active <footer> - <aside>February 28, 2025</aside> + <aside>March 2, 2025</aside> <a href="https://gto76.github.io" rel="author">Jure Šorn</a> </footer>