Как добавить несколько файлов шрифтов для одного и того же шрифта?

Я добавил свое решение, используя pcolormesh. Каждый сегмент линии рисуется с использованием прямоугольника, который интерполирует между цветами на каждом конце. Поэтому он действительно интерполирует цвет, но мы должны пройти толщину линии.

import numpy as np
import matplotlib.pyplot as plt

def colored_line(x, y, z=None, linewidth=1, MAP='jet'):
    # this uses pcolormesh to make interpolated rectangles
    xl = len(x)
    [xs, ys, zs] = [np.zeros((xl,2)), np.zeros((xl,2)), np.zeros((xl,2))]

    # z is the line length drawn or a list of vals to be plotted
    if z == None:
        z = [0]

    for i in range(xl-1):
        # make a vector to thicken our line points
        dx = x[i+1]-x[i]
        dy = y[i+1]-y[i]
        perp = np.array( [-dy, dx] )
        unit_perp = (perp/np.linalg.norm(perp))*linewidth

        # need to make 4 points for quadrilateral
        xs[i] = [x[i], x[i] + unit_perp[0] ]
        ys[i] = [y[i], y[i] + unit_perp[1] ]
        xs[i+1] = [x[i+1], x[i+1] + unit_perp[0] ]
        ys[i+1] = [y[i+1], y[i+1] + unit_perp[1] ]

        if len(z) == i+1:
            z.append(z[-1] + (dx**2+dy**2)**0.5)     
        # set z values
        zs[i] = [z[i], z[i] ] 
        zs[i+1] = [z[i+1], z[i+1] ]

    fig, ax = plt.subplots()
    cm = plt.get_cmap(MAP)
    ax.pcolormesh(xs, ys, zs, shading='gouraud', cmap=cm)
    plt.axis('scaled')
    plt.show()

# create random data
N = 10
np.random.seed(101)
x = np.random.rand(N)
y = np.random.rand(N)
colored_line(x, y, linewidth = .01)

enter image description here [/g0]

411
задан Failed Scientist 10 May 2018 в 18:06
поделиться

2 ответа

Кажется, решение состоит в том, чтобы добавить несколько правил @ font-face , например:

@font-face {
    font-family: "DejaVu Sans";
    src: url("fonts/DejaVuSans.ttf");
}
@font-face {
    font-family: "DejaVu Sans";
    src: url("fonts/DejaVuSans-Bold.ttf");
    font-weight: bold;
}
@font-face {
    font-family: "DejaVu Sans";
    src: url("fonts/DejaVuSans-Oblique.ttf");
    font-style: italic, oblique;
}
@font-face {
    font-family: "DejaVu Sans";
    src: url("fonts/DejaVuSans-BoldOblique.ttf");
    font-weight: bold;
    font-style: italic, oblique;
}

Кстати, это бы похоже, Google Chrome не знает об аргументе format ("ttf") , поэтому вы можете пропустить его.

(Этот ответ был правильным для спецификации CSS 2 . CSS3 допускает только один стиль шрифта, а не список, разделенный запятыми.)

{{1} }
709
ответ дан 22 November 2019 в 23:22
поделиться

Не забывайте, что для полужирного варианта, это font-weight; для курсивного варианта это font-style

0
ответ дан 22 November 2019 в 23:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: