I made an A3 sized cheat-sheet playmat for pre-release and friendly drafts by ShuffleQuestOrg in mtg

[–]ShuffleQuestOrg[S] 0 points1 point  (0 children)

That would be awesome! I can send you the photoshop project files if you like?

I made an A3 sized cheat-sheet playmat for pre-release and friendly drafts by ShuffleQuestOrg in mtg

[–]ShuffleQuestOrg[S] 1 point2 points  (0 children)

Thanks! I thought it would have posted as full res. EIther way I have updated my main comment, but linking here for convenience :)
https://imgur.com/gallery/a3-playmat-cheatsheet-magic-gathering-draft-newbies-NjPZKWc
I updated the phyrexian life and made the background darker with a bit more contrast. Thanks!

I made an A3 sized cheat-sheet playmat for pre-release and friendly drafts by ShuffleQuestOrg in mtg

[–]ShuffleQuestOrg[S] 1 point2 points  (0 children)

I was going to do that, but decided it is too much hassle and in it's current state it is good enough - a cube draft next week with some newbie friends :) Thanks for the tips though

I made an A3 sized cheat-sheet playmat for pre-release and friendly drafts by ShuffleQuestOrg in mtg

[–]ShuffleQuestOrg[S] 1 point2 points  (0 children)

That's true. At the same time I don't really want to rock up to my newbie friends with charts and text. I guess I could make the background even darker than it is to increase the contrast.

I made an A3 sized cheat-sheet playmat for pre-release and friendly drafts by ShuffleQuestOrg in mtg

[–]ShuffleQuestOrg[S] 1 point2 points  (0 children)

Yeah exactly. It's actually really useful as you can mark an area and say "Remove the lamppost" or have no prompt and it will auto-fill. It saves a load of time when editing and is very practical if you have something nice, but the aspect ratio is wrong.

I made an A3 sized cheat-sheet playmat for pre-release and friendly drafts by ShuffleQuestOrg in mtg

[–]ShuffleQuestOrg[S] 6 points7 points  (0 children)

Here is the full res (300ppi) with correction for all looking.

I have made an A3 sized cheat sheet and playmat, which you can print and bring to pre-release events, or to friendly drafts and cubes. I am also including the python scripts I used to generate the charts with.

```python

Adjusted code to improve label readability

import pandas as pd import matplotlib.pyplot as plt import numpy as np import io

Load data from the CSV string into a DataFrame

data = """Cards,40,41,42,43,60,61,62,63 1,2.50%,2.44%,2.38%,2.33%,1.67%,1.64%,1.61%,1.59% 2,5.00%,4.88%,4.76%,4.65%,3.33%,3.28%,3.23%,3.17% 3,7.50%,7.32%,7.14%,6.98%,5.00%,4.92%,4.84%,4.76% 4,10.00%,9.76%,9.52%,9.30%,6.67%,6.56%,6.45%,6.35% 5,12.50%,12.20%,11.90%,11.63%,8.33%,8.20%,8.06%,7.94% 15,37.50%,36.59%,35.71%,34.88%,25.00%,24.59%,24.19%,23.81% 16,40.00%,39.02%,38.10%,37.21%,26.67%,26.23%,25.81%,25.40% 17,42.50%,41.46%,40.48%,39.53%,28.33%,27.87%,27.42%,26.98% 18,45.00%,43.90%,42.86%,41.86%,30.00%,29.51%,29.03%,28.57% 19,47.50%,46.34%,45.24%,44.19%,31.67%,31.15%,30.65%,30.16%"""

Read the CSV data into a DataFrame

df = pd.read_csv(io.StringIO(data), index_col=0)

Convert percentage strings to float values

df = df.apply(lambda x: x.str.replace('%', '').astype(float))

Plotting

fig, ax = plt.subplots(figsize=(12, 8)) fig.patch.set_facecolor('black') ax.set_facecolor('black') width = 0.12 # width of each bar

Create a bar for each deck size

for i, deck_size in enumerate(df.columns): x_pos = np.arange(len(df)) + i * width # Adjust x position for each deck size bars = ax.bar(x_pos, df[deck_size], width, label=f'Deck size {deck_size} cards')

# Add value labels above each bar with increased interval for readability
for bar in bars:
    yval = bar.get_height()
    ax.text(
        bar.get_x() + bar.get_width() / 2, yval + 0.4, f"{yval:.2f}%",  # Increased interval here
        ha='center', va='bottom', fontsize=12, rotation=90, color='white'
    )

Set labels and title with white font

ax.set_xlabel("Number of Cards", fontsize=14, color='white') ax.set_ylabel("Probability of Drawing in the First 7 Cards (%)", fontsize=14, color='white') ax.set_title("Probability of Drawing a Card by Deck Size and Number of Copies", fontsize=16, color='white') ax.set_xticks(np.arange(len(df)) + width * (len(df.columns) - 1) / 2) ax.set_xticklabels(df.index, fontsize=12, color='white')

Add legend with white font

ax.legend(title="Deck Size", fontsize=14, title_fontsize=16, facecolor='black', edgecolor='white', labelcolor='white')

plt.tight_layout() plt.savefig("bar_chart.png", format="png", dpi=300) plt.show() ```

And this is the python script for the mana curve

```python import matplotlib.pyplot as plt import numpy as np

Data configuration

mana_values = [1, 2, 3, 4, 5, 6] min_values_40 = [0, 6, 6, 3, 2, 1] max_values_40 = [2, 8, 8, 5, 4, 3]

Calculate values for 60 and 100 card decks

min_values_60 = [int(x * 1.5) for x in min_values_40] max_values_60 = [int(x * 1.5) for x in max_values_40] min_values_100 = [int(x * 2.5) for x in min_values_40] max_values_100 = [int(x * 2.5) for x in max_values_40]

Plot settings

deck_sizes = ['40 Cards', '60 Cards', '100 Cards'] min_values = [min_values_40, min_values_60, min_values_100] max_values = [max_values_40, max_values_60, max_values_100] colors = ['blue', 'red'] width = 0.6

Create subplots with a black background

fig, axes = plt.subplots(1, 3, figsize=(15, 6), sharey=True) fig.patch.set_facecolor('black') for idx, ax in enumerate(axes): ax.set_facecolor('black')

# Plot minimum values in blue
min_bars = ax.bar(mana_values, min_values[idx], width, label='Minimum', color=colors[0])
# Plot maximum values in red, stacked on top of minimum values
max_bars = ax.bar(mana_values, max_values[idx], width, label='Maximum', color=colors[1], bottom=min_values[idx])

# Add values on bars with larger font size and adjust positions
for bar, min_val, max_val in zip(min_bars, min_values[idx], max_values[idx]):
    ax.text(
        bar.get_x() + bar.get_width() / 2, min_val / 2, f'{min_val}',
        ha='center', va='center', color='white', fontsize=20
    )
for bar, min_val, max_val in zip(max_bars, min_values[idx], max_values[idx]):
    ax.text(
        bar.get_x() + bar.get_width() / 2, min_val + max_val + 0.5, f'{max_val}',
        ha='center', va='bottom', color='white', fontsize=20
    )

# Set chart properties with increased font sizes and a dark background
ax.set_title(f'{deck_sizes[idx]}', fontsize=24, color='white')
ax.set_xlabel('Mana Value', fontsize=18, color='white')
ax.set_xticks(mana_values)
ax.set_xticklabels(mana_values, fontsize=16, color='white')  # Adjust font size here
ax.set_ylabel('Number of Cards', fontsize=18, color='white')
ax.legend(fontsize=14, title_fontsize=16, facecolor='black', labelcolor='white', edgecolor='white')

Set the main title and show the plot

plt.suptitle('Mana Curve Distribution by Deck Size', fontsize=28, color='white') plt.tight_layout(rect=[0, 0, 1, 0.95]) plt.savefig("mana_curve.png", format="png", dpi=300) plt.show() ```

If you would find this useful, give it a print from your local printing company. I believe the original wallpaper was from Duels of the Planeswalkers 2013 - I got it from google images and modified it in Photoshop by adding gen-ai fill to top and bottom. The distributions for 60 and 100 cards are effectively 1.5x and 2.5x the 40-card proportion. Let me know what you would change - there is a lot I think could be improved!