ฉันมีรหัสต่อไปนี้:
import matplotlib.pyplot as plt
cdict = {
'red' : ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
'green': ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
'blue' : ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}
cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)
plt.clf()
plt.pcolor(X, Y, v, cmap=cm)
plt.loglog()
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
นี่จะสร้างกราฟของค่า 'v' บนแกน X vs Y โดยใช้ตารางสีที่ระบุ แกน X และ Y นั้นสมบูรณ์แบบ แต่ colormap แพร่กระจายระหว่าง min และ max ของ v ฉันต้องการบังคับให้ colormap อยู่ในช่วงระหว่าง 0 ถึง 1
ฉันคิดว่าจะใช้:
plt.axis(...)
ในการตั้งค่าช่วงของแกน แต่ใช้อาร์กิวเมนต์สำหรับ min และ max ของ X และ Y เท่านั้นไม่ใช่ colormap
แก้ไข:
เพื่อความชัดเจนสมมุติว่าฉันมีกราฟหนึ่งช่วงที่มีค่า (0 ... 0.3) และอีกกราฟที่มีค่า (0.2 ... 0.8)
ในกราฟทั้งสองฉันจะต้องการช่วงของแถบสีให้เป็น (0 ... 1) ในกราฟทั้งสองฉันต้องการให้ช่วงสีนี้เหมือนกันโดยใช้ช่วงเต็มของ cdict ด้านบน (ดังนั้น 0.25 ในกราฟทั้งสองจะเป็นสีเดียวกัน) ในกราฟแรกสีทั้งหมดระหว่าง 0.3 ถึง 1.0 จะไม่แสดงในกราฟ แต่จะอยู่ในปุ่ม colourbar ที่ด้านข้าง ในอีกสีหนึ่งสีทั้งหมดระหว่าง 0 ถึง 0.2 และระหว่าง 0.8 และ 1 จะไม่แสดงในกราฟ แต่จะอยู่ในแถบสีด้านข้าง