我有 500 个文件,在每个循环中我打开其中一个并将列存储在列表中,然后生成 3 个图形。在每个循环中,我都在叠加相应的图形。该代码有效,但我无法放置取决于“t”列表的误差条(三个图形应具有相同的颜色条)。如果它是单个图形,我可以使用:plt.colorbar (),如我附加的图形所示,但我想为 3 个图形生成它。

import matplotlib.cm as cm
import matplotlib.pyplot as plt
import numpy as np

f1 = plt.figure()
f2 = plt.figure()
f3 = plt.figure()
ax1 = f1.add_subplot(111)
ax2 = f2.add_subplot(111)
ax3 = f3.add_subplot(111)

t = np.arange(0, 45000*10**5, 90*10**5)

for j in range(1, 501):

    x1, x2, x3, x4 = np.loadtxt('file' + str(j), usecols = (1,2,3,4), unpack = True)

    ax1.scatter(x1, x2, c=t, cmap=cm.spring)
    ax2.scatter(x1, x3, c=t, cmap=cm.spring)
    ax3.scatter(x1, x4, c=t, cmap=cm.spring)

f1.savefig('plot1', format = 'pdf', dpi = 1200, bbox_inches = 'tight')
f2.savefig('plot2', format = 'pdf', dpi = 1200, bbox_inches = 'tight')
f3.savefig('plot3', format = 'pdf', dpi = 1200, bbox_inches = 'tight')

我看过一些放置颜色条的示例(例如 http://matplotlib.org/1.3.1/examples/pylab_examples/colorbar_tick_labelling_demo.html ),但在我看来它不适用于我的情况,正如您在图中看到的那样,我在这里附加了 enter image description [enter image description here] 1 ,因为不是所有的空间由于我的数据的随机性和循环,在我的图形中是完整的,并且点可以重叠(我使用透明度)。

总之,我想添加一个基于“t”列表的垂直颜色条。非常感谢您的帮助。

最佳答案

这是根据数组 t 中的值向每个绘图添加垂直颜色条的方式:

import matplotlib.cm as cm
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(0)
import cufflinks as cf

t = np.arange(0, 45000*10**5, 90*10**5)

for j in range(1, 2): # Loop just once for testing (instead of 501 times)

    # Load files
    # x1, x2, x3, x4 = np.loadtxt('file' + str(j), usecols = (1,2,3,4), unpack = True)

    # Generate sample data (instead of loading files)
    data = cf.datagen.lines(4, 500)
    x1 = data.iloc[:,0]
    x2 = data.iloc[:,1]
    x3 = data.iloc[:,2]
    x4 = data.iloc[:,3]

    f1, ax1 = plt.subplots()
    sc1 = ax1.scatter(x1, x2, c=t, cmap=cm.spring)
    plt.colorbar(sc1)

    f2, ax2 = plt.subplots()
    sc2 = ax2.scatter(x1, x3, c=t, cmap=cm.spring)
    plt.colorbar(sc2)

    f3, ax3 = plt.subplots()
    sc3 = ax3.scatter(x1, x4, c=t, cmap=cm.spring)
    plt.colorbar(sc3)

f1.savefig('plot1.pdf', dpi = 1200, bbox_inches = 'tight')
f2.savefig('plot2.pdf', dpi = 1200, bbox_inches = 'tight')
f3.savefig('plot3.pdf', dpi = 1200, bbox_inches = 'tight')

python - 列表中的颜色条-LMLPHP
python - 列表中的颜色条-LMLPHP
python - 列表中的颜色条-LMLPHP

关于python - 列表中的颜色条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47232563/

10-10 22:07