A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://pythonot.github.io/auto_examples/others/plot_logo.html below:

Website Navigation


Logo of the POT toolbox — POT Python Optimal Transport 0.9.5 documentation

Logo of the POT toolbox

In this example we plot the logo of the POT toolbox.

This logo is that it is done 100% in Python and generated using matplotlib and plotting the solution of the EMD solver from POT.

# Author: Remi Flamary <remi.flamary@polytechnique.edu>
#
# License: MIT License

# sphinx_gallery_thumbnail_number = 1
import numpy as np
import matplotlib.pyplot as pl
import ot
Data for logo
# Letter P
p1 = np.array(
    [
        [0, 6.0],
        [0, 5],
        [0, 4],
        [0, 3],
        [0, 2],
        [0, 1],
    ]
)
p2 = np.array(
    [
        [1.5, 6],
        [2, 4],
        [2, 5],
        [1.5, 3],
        [0.5, 2],
        [0.5, 1],
    ]
)

# Letter O
o1 = np.array(
    [
        [0, 6.0],
        [-1, 5],
        [-1.5, 4],
        [-1.5, 3],
        [-1, 2],
        [0, 1],
    ]
)
o2 = np.array(
    [
        [1, 6.0],
        [2, 5],
        [2.5, 4],
        [2.5, 3],
        [2, 2],
        [1, 1],
    ]
)

# Scaling and translation for letter O
o1[:, 0] += 6.4
o2[:, 0] += 6.4
o1[:, 0] *= 0.6
o2[:, 0] *= 0.6

# Letter T
t1 = np.array(
    [
        [-1, 6.0],
        [-1, 5],
        [0, 4],
        [0, 3],
        [0, 2],
        [0, 1],
    ]
)
t2 = np.array(
    [
        [1.5, 6.0],
        [1.5, 5],
        [0.5, 4],
        [0.5, 3],
        [0.5, 2],
        [0.5, 1],
    ]
)

# Translating the T
t1[:, 0] += 7.1
t2[:, 0] += 7.1

# Concatenate all letters
x1 = np.concatenate((p1, o1, t1), axis=0)
x2 = np.concatenate((p2, o2, t2), axis=0)

# Horizontal and vertical scaling
sx = 1.0
sy = 0.5
x1[:, 0] *= sx
x1[:, 1] *= sy
x2[:, 0] *= sx
x2[:, 1] *= sy
Plot the logo (clear background)
# Solve OT problem between the points
M = ot.dist(x1, x2, metric="euclidean")
T = ot.emd([], [], M)

pl.figure(1, (3.5, 1.1))
pl.clf()
# plot the OT plan
for i in range(M.shape[0]):
    for j in range(M.shape[1]):
        if T[i, j] > 1e-8:
            pl.plot(
                [x1[i, 0], x2[j, 0]],
                [x1[i, 1], x2[j, 1]],
                color="k",
                alpha=0.6,
                linewidth=3,
                zorder=1,
            )
# plot the samples
pl.plot(x1[:, 0], x1[:, 1], "o", markerfacecolor="C3", markeredgecolor="k")
pl.plot(x2[:, 0], x2[:, 1], "o", markerfacecolor="b", markeredgecolor="k")


pl.axis("equal")
pl.axis("off")

# Save logo file
# pl.savefig('logo.svg', dpi=150, transparent=True, bbox_inches='tight')
# pl.savefig('logo.png', dpi=150, transparent=True, bbox_inches='tight')
(np.float64(-0.43), np.float64(9.03), np.float64(0.375), np.float64(3.125))
Plot the logo (dark background)
pl.figure(2, (3.5, 1.1), facecolor="darkgray")
pl.clf()
# plot the OT plan
for i in range(M.shape[0]):
    for j in range(M.shape[1]):
        if T[i, j] > 1e-8:
            pl.plot(
                [x1[i, 0], x2[j, 0]],
                [x1[i, 1], x2[j, 1]],
                color="w",
                alpha=0.8,
                linewidth=3,
                zorder=1,
            )
# plot the samples
pl.plot(x1[:, 0], x1[:, 1], "o", markerfacecolor="w", markeredgecolor="w")
pl.plot(x2[:, 0], x2[:, 1], "o", markerfacecolor="w", markeredgecolor="w")

pl.axis("equal")
pl.axis("off")

# Save logo file
# pl.savefig('logo_dark.svg', dpi=150, transparent=True, bbox_inches='tight')
# pl.savefig('logo_dark.png', dpi=150, transparent=True, bbox_inches='tight')
(np.float64(-0.43), np.float64(9.03), np.float64(0.375), np.float64(3.125))

Total running time of the script: (0 minutes 0.053 seconds)

Gallery generated by Sphinx-Gallery


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4