gpt4 book ai didi

python - Matplotlib Colormaps——为每个图形/线条/主题选择不同的颜色

转载 作者:行者123 更新时间:2023-12-05 09:03:15 27 4
gpt4 key购买 nike

我创建了一个脚本来读取和绘制 .txt 文件及其内容(数字/值)。每个 .txt 文件位于不同的文件夹中。每个文件夹依次代表数据的一个主题。

这段代码工作正常。 Python 读取每个单独的 .txt。文件并将 23 个单独的图形/线绘制到一个图中。 Python 在这里使用了一些标准的颜色,即每个图形自动以不同的颜色呈现。

我想做的是:我不想使用 python 自动分配的标准颜色而不添加任何与颜色相关的代码,而是想使用 matplotlib 中的特定颜色图(例如“plasma”)。

问题:无论我使用来自互联网的什么代码,所有图形/线条/主题总是收到相同的颜色(例如等 ionic 颜色图中的第一种颜色或最后一种颜色)。

如何指定代码以便每一行都从所选颜色图中获得一种不同的颜色?

这是我的代码:

# 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()

这是生成的屏幕截图,显示使用了标准颜色而不是所需的等 ionic 颜色图:

screenshot

我正在使用 MacOSX 作为后端运行 matplotlib 3.5.0

最佳答案

enter image description here

您想为颜色图实例提供一个介于 0 和 1 之间的参数,这需要最少的计划,例如,

x = np.linspace(0,355/113, 101)
p = plt.get_cmap('plasma')
n = 23
for i in range(n):
plt.plot(x, np.sin(x-i/2/n), color=p(i/(n-1)))

关于python - Matplotlib Colormaps——为每个图形/线条/主题选择不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70142953/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com