Matplotlib - нарисуйте несколько сюжетов с разным цветом - PullRequest
0 голосов
/ 09 апреля 2020

Я довольно новичок в использовании библиотеки python matplotlib. У меня есть десять графиков, которые можно нарисовать на одном рисунке, используя назначения matplotlib.pyplot.plot Я хотел бы выбрать цвета из «короче» рейнджера, чем по умолчанию, например «вокруг красного» (например, от reddi sh пурпурного до оранжевого). Является ли это возможным? Как я могу сделать это в python?

Я также нашел это https://matplotlib.org/examples/color/colormaps_reference.html, но мне это кажется совершенно бесполезным.

Спасибо за ответ

РЕДАКТИРОВАТЬ: чтобы лучше прояснить, что мне нужно, я ищу способ связи с функцией "plt.plot", который я хочу, чтобы она перебирала другой набор цветов

1 Ответ

0 голосов
/ 09 апреля 2020

Если вы хотите создать цветовую шкалу, вы можете сделать следующее. Используя https://matplotlib.org/3.2.1/tutorials/colors/colormap-manipulation.html в качестве ссылки:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

def plot_examples(colormaps):
    """
    Helper function to plot data with associated colormap.
    """
    np.random.seed(19680801)
    data = np.random.randn(30, 30)
    n = len(colormaps)
    fig, axs = plt.subplots(1, n, figsize=(n * 2 + 2, 3),
                            constrained_layout=True, squeeze=False)
    for [ax, cmap] in zip(axs.flat, colormaps):
        psm = ax.pcolormesh(data, cmap=cmap, rasterized=True, vmin=-4, vmax=4)
        fig.colorbar(psm, ax=ax)
    plt.show()

colors = ["purple", "red"]
cmap1 = LinearSegmentedColormap.from_list("mycmap", colors)
plot_examples([cmap1])

enter image description here

Вы также можете использовать цветовую карту для получения значений для нормального plot:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

# Creating the colar map
colors = ["purple", "red"]
cmap1 = LinearSegmentedColormap.from_list("mycmap", colors)

# Data used in plot
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)

plt.plot(t, s, color=cmap1(0.1))
plt.show()

Здесь вы можете изменить 0.1 от второй до последней строки, чтобы выбрать место на карте цветов, которую вы хотите запросить (0-255).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...