Tôi đang cố gắng tìm hiểu cách đặt/sửa vị trí của nhãn đánh dấu cho một âm mưu matplotlib 3D. Đánh dấu nhãn không phù hợp với bọ ve. Vấn đề có vẻ đặc biệt nổi bật khi cần nhiều nhãn đánh dấu.đánh dấu vị trí nhãn cho âm mưu 3D matplotlib
Tôi đã sửa đổi một ví dụ (http://matplotlib.org/examples/mplot3d/polys3d_demo.html) từ tài liệu matplotlib để minh họa cho câu hỏi của tôi.
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.collections import PolyCollection
from matplotlib.colors import colorConverter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(10,10))
ax = fig.gca(projection='3d')
cc = lambda arg: colorConverter.to_rgba(arg, alpha=0.6)
xs = np.arange(0, 10, 0.4)
verts = []
zs = np.arange(50)
for z in zs:
ys = np.ones(len(xs))*z
ys[0], ys[-1] = 0, 0
verts.append(list(zip(xs, ys)))
poly = PolyCollection(verts,facecolor='c')
poly.set_alpha(0.7)
ax.add_collection3d(poly, zs=zs, zdir='y')
ax.set_xlabel('X')
ax.set_xlim3d(0, 10)
ax.set_ylabel('Y')
ax.set_ylim3d(-1, len(zs))
ax.set_yticks(np.arange(len(zs)))
labels = {}
for l_c in zs:
labels[l_c] = 'This Looks Bad'
ax.set_yticklabels(labels,rotation=-15)
ax.set_zlabel('Z')
ax.set_zlim3d(0, ys.max())
plt.show()
Vậy câu hỏi là: làm thế nào tôi có thể nhận các nhãn đánh dấu để phù hợp với các vị trí đánh dấu?
Như một lưu ý cho OP: 'va' là đồng nhất với' verticalalignment' như trong ví dụ của tôi. Điều tương tự cũng giữ cho 'ha' và' horizontalalignment'. – Hooked
Có, cảm ơn vì đã làm rõ điều đó, các chữ viết tắt là hạnh phúc khi gõ chúng rất nhiều. :) –
Cảm ơn @Rutger. Tôi đoán đây là điều tốt nhất có thể làm được. Tôi đã chơi đùa với những thứ này (ha, va) và gần như có được thứ tôi muốn. Nó hoạt động tốt hơn trên ví dụ đồ chơi này hơn là vấn đề thực tế mà tôi đang cố giải quyết. Bạn có thể đưa ra một ví dụ về làm thế nào để giảm padding? Có thể thêm vào câu trả lời hiện có của bạn. –