как настроить данные scientifi c в colobar на правильный стиль - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать contourf с данными matplotlib usint, экспортированными из другого программного обеспечения. данные - scieneifi c data, как показано ниже:

0   0   9.94037526953533E-16
0.166666657 0   9.97018765290513E-16
0.333333313 0   1.00000000362749E-15
0.49999997  0   1.00000000362749E-15
0.833333254 0   1.00000000362749E-15
1.166666627 0   1.00000000362749E-15
1.499999881 0   1.00000000362749E-15
1.874999881 0   1.00000000362749E-15
2.249999762 0   1.00000000362749E-15
2.624999762 0   1.00000000362749E-15
2.999999762 0   1.00000000362749E-15
3.399999857 0   1.00000000362749E-15
3.799999952 0   1.00000000362749E-15
4.199999809 0   1.00000000362749E-15
4.599999905 0   1.00000000362749E-15
5   0   1.00000000362749E-15

, как вы можете видеть на моем рисунке, заголовок перекрывается на цветовой панели. Как решить эту проблему? В моем коде сначала я читаю данные из файла, а затем сохраняю в arry. Лучше, если вы поможете мне использовать l oop. Я могу добавить ключевое слово в текстовый файл, чтобы идентифицировать его, если вы можете использовать al oop для чтения данных из текстового файла, а затем указать имя в подзаговоре с помощью ключевого слова. Но я не знаю, как использовать al oop для упрощения этого кода. Я очень ценю это, если вы можете мне помочь. Я все еще новый для python.

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

a1,b1,c1 = np.loadtxt("00_permeability.txt", unpack=True)
a2,b2,c2 = np.loadtxt("04_permeability.txt", unpack=True)
a3,b3,c3 = np.loadtxt("04_00_permeability.txt", unpack=True)

x1=a1.reshape(51,16)
y1=b1.reshape(51,16)
z1=c1.reshape(51,16)

x2=a2.reshape(51,16)
y2=b2.reshape(51,16)
z2=c2.reshape(51,16)

x3=a3.reshape(51,16)
y3=b3.reshape(51,16)
z3=c3.reshape(51,16)

fig, (ax1,ax2,ax3) = plt.subplots(figsize=(12,8), ncols=3)

cet1=ax1.contourf(x1, y1, z1, 100, cmap="jet")
#依据第一个txt文件里的数据绘图,平滑等级100,上色为jet
ax1.set_aspect(aspect=1)
#强制x与y按照1:1
ax1.set_title("Initial", fontname='Helvetica', fontsize = 12)
#设置顶部文字
cet1_bar=fig.colorbar(cet1, ax=ax1, aspect=60)
#在图1旁边绘制图例,图例调窄,调窄因子为80
cet1_bar.outline.set_visible(False)
#图例中黑色边框去掉
#ax1.tick_params(axis='both', which='major', labelsize=12)
ax1.set_xticks([0,2.5,5])
plt.setp(ax1.get_xticklabels(), fontsize=12, fontname="Times New Roman")
plt.setp(ax1.get_yticklabels(), fontsize=12, fontname="Times New Roman")

cet2=ax2.contourf(x2, y2, z2, 100, cmap="jet")
ax2.set_title("100 000 years", fontname='Helvetica', fontsize = 12)
cet2_bar=fig.colorbar(cet2, ax=ax2, aspect=60)
ax2.set_aspect(aspect=1)
cet2_bar.outline.set_visible(False)
ax2.set_xticks([0,2.5,5])
plt.setp(ax2.get_xticklabels(), fontsize=12, fontname="Times New Roman")
plt.setp(ax2.get_yticklabels(), fontsize=12, fontname="Times New Roman")

cet3=ax3.contourf(x3, y3, z3, 100, cmap="jet")
ax3.set_title("Change", fontname='Helvetica', fontweight='bold')
cet3_bar=fig.colorbar(cet3, ax=ax3, aspect=60) 
ax3.set_aspect(aspect=1)
cet3_bar.outline.set_visible(False)
ax3.set_xticks([0,2.5,5])
plt.setp(ax3.get_xticklabels(), fontsize=12, fontname="Times New Roman")
plt.setp(ax3.get_yticklabels(), fontsize=12, fontname="Times New Roman")
plt.subplots_adjust(bottom=0.1, wspace=0.01) #It seems do no work

plt.savefig("Fig01.png",dpi=1000, bbox_inches='tight')
plt.show()

enter image description here

...