Tôi đang cố gắng tạo một đường đồng mức với các mức xác định và chỉ tiêu nhật ký. Dưới đây là một ví dụ:matplotlib đường đồng mức với lognorm - mức độ màu sắc
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LogNorm
delta = 0.025
x = y = np.arange(0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = plt.mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = plt.mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10 * (Z1* Z2)
fig=plt.figure()
ax1 = fig.add_subplot(111)
lvls = np.logspace(-4,0,20)
CF = ax1.contourf(X,Y,Z,
norm = LogNorm(),
levels = lvls
)
CS = ax1.contour(X,Y,Z,
norm = LogNorm(),
colors = 'k',
levels = lvls
)
cbar = plt.colorbar(CF, ticks=lvls, format='%.4f')
plt.show()
Câu hỏi của tôi là:
Mức nên được viết bằng định dạng: '1x10^-4', '1.6x10^-4', ... Làm thế nào để tôi làm điều này, mà không chỉ định từng cấp theo cách thủ công?
Tôi đang sử dụng python 2.7.3 với matplotlib 1.1.1 trên Windows 7.
Thử tìm [tại đây] (http://stackoverflow.com/questions/5748076/python-matplotlib-contour-plot-logarithmic-color-scale) hoặc [tại đây] (http: //matplotlib.1069221.n5. nabble.com/logarithmic-scale-of-colorbar-with-ticks-and-custom-labels-td21663.html). – wflynny
tùy thuộc vào cách bạn muốn các cấp được gắn nhãn, kiểm tra [câu trả lời này] (http://stackoverflow.com/questions/16529038/matplotlib-tick-axis-notation-with-superscript/16530841#16530841) – Schorsch
Cảm ơn câu trả lời. Điều đó sẽ giải quyết Câu hỏi 1. Bạn cũng có ý tưởng cho câu hỏi 2 không? – user2145054