Как использовать одну шкалу в cmap (matplotlib)? - PullRequest
0 голосов
/ 17 ноября 2018

Мне нужно создать график с цветовой картой, но результат не очень хороший.EN1 - это нижняя линия на графике, EN2 - середина ... с учетом вашей соответствующей карты, полученной с помощью OV1 ... Но если мы посмотрим на файл данных, мы получим

(первые значения)OV1: 1.155696e-01, 1.105146e-01, 1.056876e-01 (уменьшение) для OV2: 1.155696e-01, 1.208650e-01, 1.264139e-01. (Увеличение) и OV6: 6.318231e-01, 6.757345e-01, 7.105571е-01.(увеличение)

Если мы посмотрим на график (конец кода), даже значения ov1 и ov2 близки в начале, а OV6 имеют наибольшее значение, график показывает OV1 с более интенсивным цветомэто OV6.и даже при значениях, близких к ov2, он намного интенсивнее, чем ov2 to.Я хочу построить в глобальном масштабе.потому что кажется, что cmap создал масштаб для каждой построенной строки.Спасибо.

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

A = np.loadtxt('EnergiesEF.dat', float)
B = np.loadtxt('Overlayer.dat', float)

EF=A[:,0] 
EN1=A[:,1]
EN2=A[:,2]
EN6=A[:,6]

OV1=B[:,0]
OV2=B[:,1]
OV6=B[:,5]

plt.scatter(EF,EN1, c=OV1, cmap='Blues', s=400)
plt.scatter(EF,EN2, c=OV2, cmap='Blues', s=400)
plt.scatter(EF,EN6, c=OV6, cmap='Blues', s=400)

plt.show()

enter image description here

...