mirror of
https://github.com/ParisNeo/lollms-webui.git
synced 2024-12-25 06:51:04 +00:00
104 lines
2.9 KiB
Python
104 lines
2.9 KiB
Python
import matplotlib.patches as patches
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
def parse_and_visualize_weird_palette(palette_str):
|
|
# Split the input string into lines
|
|
lines = palette_str.split(";")
|
|
|
|
# Initialize an empty dictionary to hold the color information
|
|
colors = {}
|
|
|
|
# Parse each line
|
|
for line in lines:
|
|
if not line.strip():
|
|
continue # Skip empty lines
|
|
# Split each line into name and color value
|
|
name, color = line.split(":")
|
|
# Remove leading/trailing whitespace and replace dashes with spaces in the name for readability
|
|
name = name.strip().replace("--color-", "").replace("-", " ").title()
|
|
color = color.strip()
|
|
# Add to the colors dictionary
|
|
colors[name] = color
|
|
|
|
# Now, we have the colors dictionary filled, we can visualize it
|
|
# Create a figure and a grid of subplots
|
|
fig, ax = plt.subplots(figsize=(10, 8))
|
|
|
|
# Remove the axes
|
|
ax.axis("off")
|
|
|
|
# Title
|
|
ax.set_title("Weird Color Palette Visualization", fontsize=16)
|
|
|
|
# Plot each color as a rectangle
|
|
for i, (name, color) in enumerate(colors.items()):
|
|
row = i // 4
|
|
col = i % 4
|
|
rect = patches.Rectangle(
|
|
(col * 2.5, row * -1.5),
|
|
2,
|
|
1,
|
|
linewidth=1,
|
|
edgecolor="none",
|
|
facecolor=color,
|
|
)
|
|
ax.add_patch(rect)
|
|
ax.text(
|
|
col * 2.5 + 1,
|
|
row * -1.5 + 0.5,
|
|
name,
|
|
ha="center",
|
|
va="center",
|
|
fontsize=9,
|
|
color="white" if i < 14 else "black",
|
|
weight="bold",
|
|
)
|
|
|
|
# Adjust the limits and aspect of the plot
|
|
ax.set_xlim(0, 10)
|
|
ax.set_ylim(-6, 1)
|
|
ax.set_aspect(1)
|
|
|
|
plt.show()
|
|
|
|
|
|
# Example of a weird palette
|
|
weird_palette_str = """
|
|
--color-primary: #88c999;
|
|
--color-primary-light: #cc8899;
|
|
--color-secondary: #987654;
|
|
--color-accent: #fe01b1;
|
|
--color-bg-dark: #013370;
|
|
--color-bg-dark-tone: #650021;
|
|
--color-bg-dark-tone-panel: #feae17;
|
|
--color-bg-dark-code-block: #bada55;
|
|
--color-bg-light: #420420;
|
|
--color-bg-light-tone: #133337;
|
|
--color-bg-light-code-block: #065535;
|
|
--color-bg-light-tone-panel: #511845;
|
|
--color-bg-dark-discussion: #170e4b;
|
|
--color-bg-dark-discussion-odd: #331a38;
|
|
--color-bg-light-discussion: #f4c2c2;
|
|
--color-bg-light-discussion-odd: #fae7b5;
|
|
"""
|
|
weird_palette_str = """
|
|
--color-primary: #0e8ef0;
|
|
--color-primary-light: #3dabff;
|
|
--color-secondary: #0fd974;
|
|
--color-accent: #f0700e;
|
|
--color-bg-dark: #132e59;
|
|
--color-bg-dark-tone: #25477d;
|
|
--color-bg-dark-tone-panel: #4367a3;
|
|
--color-bg-dark-code-block: #2254a7;
|
|
--color-bg-light: #e2edff;
|
|
--color-bg-light-tone: #b9d2f7;
|
|
--color-bg-light-code-block: #cad7ed;
|
|
--color-bg-light-tone-panel: #8fb5ef;
|
|
--color-bg-dark-discussion: #435E8A;
|
|
--color-bg-dark-discussion-odd: #284471;
|
|
--color-bg-light-discussion: #c5d8f8;
|
|
--color-bg-light-discussion-odd: #d6e7ff;
|
|
"""
|
|
parse_and_visualize_weird_palette(weird_palette_str)
|