我有 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 - 列表中的颜色条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47232563/