Цветовые карты Matplotlib – выбор другого цвета для каждого графика/линии/объекта.Python

Программы на Python
Anonymous
Цветовые карты Matplotlib – выбор другого цвета для каждого графика/линии/объекта.

Сообщение Anonymous »

Я создал скрипт, который считывает и отображает файлы .txt и их содержимое (числа/значения). Каждый файл .txt находится в отдельной папке. Каждая папка, в свою очередь, представляет один субъект, из которого берутся данные.
Этот код работает нормально. Python читает каждый отдельный файл .txt. файл и отображает 23 отдельных графика/линии в один график. Python использует здесь некоторые стандартные цвета, т. е. каждый график автоматически отображается в другом цвете.
Я хотел бы сделать следующее: вместо использования стандартных цветов, назначенных Python автоматически, без добавления какого-либо кода, связанного с цветом, я хотел бы использовать определенную цветовую карту (например, «плазму») ​​из matplotlib.
Проблема: независимо от того, какой код из Интернета я использую , все графики/линии/объекты всегда получают один и тот же цвет (например, первый цвет или последний цвет из карты цветов плазмы).
Как указать код, чтобы каждая строка имела один отдельный цвет цвет из выбранной цветовой карты?
Вот мой код:

Код: Выделить всё

# Initialize
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
from matplotlib.pyplot import cm

# Numpy.loadtxt – Loads data from a textfile. Scipy.signal.welch – Creation of the FFT/power-spectrum. f, Pxx_den creates the ideal frequencies/FFT (f, Welch = Power Spectrum or Power Spectral Density)
Subjects = ["Subject1", "Subject2", "Subject3", "Subject4", "Subject5", "Subject7", "Subject8", "Subject9", "Subject10", "Subject11", "Subject12", "Subject13",
"Subject14", "Subject15", "Subject16", "Subject17", "Subject18", "Subject19", "Subject20", "Subject22", "Subject23", "Subject24", "Subject25"]

for Subject in Subjects:

Subject = np.loadtxt("/volumes/SanDisk2/fmri/dataset/processed/extracted_timeseriespython/restingstate/{0}/TimeSeries.SPC.Core_ROI.{0}.txt".format(Subject), comments="#", delimiter=None,
converters=None, skiprows=0, usecols=0, unpack=False, ndmin=0, encoding=None, max_rows=None, like=None)

f, Welch = signal.welch(Subject, fs=1.0, window="hann", nperseg=None, noverlap=None, nfft=1024, detrend="constant", return_onesided=True, scaling="density", axis=-1, average="mean")

cmap = plt.get_cmap("inferno")
slicedCM = cmap(np.linspace(0, 1, len(Subjects)))

plt.plot(f, Welch, c=slicedCM[Subjects.index(Subject)])

# Grid labels
plt.title("Power Spectrum for all subjects", fontsize=12, fontweight="bold")
plt.xlabel("Log Frequency [Hz]", fontsize=11, fontweight="bold")
plt.ylabel("Log Power [Hz]", fontsize=11, fontweight="bold")

# Grid dimenions and style
plt.xlim([0.005, 0.2]) # x-axis range
plt.ylim([0, 100]) # y-axis range

plt.xticks(np.arange(0, 0.21, 0.025)) # x ticks range (start, end, step)
plt.yticks(np.arange(0, 101, 10)) # y ticks range (start, end, step)

plt.grid(True) # Show grid
plt.rc("axes", axisbelow=True) # Grid behind figures
plt.rc("grid", linestyle="-", color="black") # Grid look

# Show result
plt.show()
Вот полученный снимок экрана, показывающий, что вместо желаемой карты цветов плазмы используются стандартные цвета:

Я использую matplotlib 3.5.0 с MacOSX в качестве серверной части.

Подробнее здесь: https://stackoverflow.com/questions/701 ... ne-subject

Вернуться в «Python»