Skip to main content

Pi is beautiful


Continuing from my last blog post : I watched this video called "Pi is beautiful" and it inspired me to create my own pi art. With the help of my friend Bard I was able to get python code (or should I write pithon code) to get the job done. I sort of see a 9 as highlighted in the image above with gray pen tool. I used pydroid on my mobile and I had to correct a few errors in the code with Bard.

This was my prompt:

Take the first 1000 pi digits and create x,y coordinates with the adjacent digits and create a colorful visualisation with the coordinates. Increment the size and color everytime we land on a coordinate.

This was the code:

import matplotlib.pyplot as plt
import math

from PIL import Image
import io

# Get the first 1000 digits of pi
pi_digits = "141592..."

# Create coordinates and track frequencies
coordinates = []
frequency_map = {}  # Use a dictionary to track frequencies efficiently
for i in range(0, len(pi_digits) - 1, 2):
    pair = (int(pi_digits[i]), int(pi_digits[i + 1]))
    coordinates.append(pair)
    frequency_map[pair] = frequency_map.get(pair, 0) + 1000  # Increment frequency

# Create the scatter plot with size and colors based on frequencies
plt.figure(figsize=(10, 6))
plt.scatter(*zip(*coordinates), s=[frequency_map[pair] for pair in coordinates],
            c=[frequency_map[pair] for pair in coordinates], cmap='viridis')

# Add labels and title
plt.xlabel("X-coordinates from Pi Digits")
plt.ylabel("Y-coordinates from Pi Digits")
plt.title("Scatter Plot of Pi Digits with Size and Color by Frequency")

# Show the plot
plt.show()

Comments

Popular posts from this blog

Hobby project - Store and view exchange rates

The next step in my project was to test out being able store and display the rates in a database. I decided to use nodejs and supabase for this. Everything worked beautifully. Only hickup was the following error due to my package.json not being correct. SyntaxError: Cannot use import statement outside a module Added this to package.json   "type": "module" This works beautifully. Right now I am just testing fragments of what could be part of a bigger system to see what is possible and what works and how easy to code on a mobile. There is no fully functioning integrated end to end system just yet. This is also what I tested. A serverless append-only database using GitHub + Actions + Pages. That’s basically a lightweight backend system. This was the ChatGPT prompt I used. Guide me through each step. This is what I want. A manually run github actions that adds to docs/data.json with the current date and time. docs/index.html displays all the entries in data.json. Make s...

What is important

Every now and again, I get reminded of the why. Why I have handed my life over to God. It is 3:08 p.m. and I have decided to write. Honestly, I feel like I could end this blog post right here. What more is there to say? God above all else. God is our compass on this journey called life. Everything else can become a distraction. Maybe not everything, but certainly many things. You get the point. What is important? What do we prioritise? What do we make time for? The answers look different for everyone. Our lives are different. We are tested differently. We are all products of our circumstances, and those circumstances vary from person to person. Yet God is the common thread across humanity and throughout time. God always was and always will be. One day, we will answer to God. We will give account to God. We cannot live without food, water, and oxygen, but all of those things come from God. So how can we live without God? How timely. I just received a notification from the Quranly app: S...

Hobby coding project - Queries for play whe data

I have an interest in open data and being able to query that data and gain beautiful insights. One data set that would be interesting is the play whe results data. Our open data is lacking in Trinidad and I will try to contact NLCB to see if they can provide and maintain the data online. But in the meanwhile I will use randomised data to create the website and do my testing. First thing I did was install sqlite on termux pkg update && pkg upgrade pkg install sqlite sqlite3 --version Create my database in my project folder sqlite3 results.db Useful commands .exit .quit Exit from multiline prompt ; SQL to create my table (create_tbl_results.sql) CREATE TABLE DrawResults (     DrawNo INTEGER PRIMARY KEY,                           DrawDate DATE,     ResultNo INTEGER CHECK (ResultNo BETWEEN 1 AND 36),     DrawTime INTEGER CHECK (DrawTime BETWEEN 1 AND 4) ); SQL to create the random dat...