Tôi đã tìm kiếm trên internet trong một thời gian dài nhưng không thể tìm ra cách để thực hiện nó. Tôi cần phải vẽ một số con số có xticks được định nghĩa là numpy.arange (1, N), N là khác nhau cho mỗi con số. Tôi muốn khoảng cách giữa các xticks giống nhau trên tất cả các số liệu (ví dụ 1 cm), nghĩa là chiều rộng của mỗi hình phải phụ thuộc vào kích thước của numpy.arange (1, N). Bất kỳ ý tưởng làm thế nào để làm điều đó?Matplotlib - Cách đặt khoảng cách (tính bằng mm/cm/điểm ...) giữa các xticks
6
A
Trả lời
2
Tôi nghĩ bạn có thể làm điều này với sự kết hợp kiểm soát cẩn thận kích thước trục của bạn (như một phần nhỏ của hình), ax.set_xlim
và fig.set_size_inches
(doc) để đặt kích thước thực của hình.
cũ
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.set_xlim([0,N])
fig.set_size_inches([N/2.54,h])
0
Để mở rộng khi câu trả lời @ tcaswell của, đây là cách tôi làm điều đó khi tôi muốn vi quản lý kích thước thực sự của trục của tôi và của ve liên khoảng cách.
import numpy as np
import matplotlib.pyplot as plt
plt.close('all')
#------------------------------------------------------ define xticks setup ----
xticks_pos = np.arange(11) # xticks relative position in xaxis
N = np.max(xticks_pos) - np.min(xticks_pos) # numbers of space between ticks
dx = 1/2.54 # fixed space between xticks in inches
xaxis_length = N * dx
#------------------------------------------------------------ create figure ----
#---- define margins size in inches ----
left_margin = 0.5
right_margin = 0.2
bottom_margin = 0.5
top_margin = 0.25
#--- calculate total figure size in inches ----
fwidth = left_margin + right_margin + xaxis_length
fheight = 3
fig = plt.figure(figsize=(fwidth, fheight))
fig.patch.set_facecolor('white')
#---------------------------------------------------------------- create axe----
#---- axes relative size ----
axw = 1 - (left_margin + right_margin)/fwidth
axh = 1 - (bottom_margin + top_margin)/fheight
x0 = left_margin/fwidth
y0 = bottom_margin/fheight
ax0 = fig.add_axes([x0, y0, axw, axh], frameon=True)
#---------------------------------------------------------------- set xticks----
ax0.set_xticks(xticks_pos)
plt.show(block=False)
fig.savefig('axis_ticks_cm.png')
Điều này dẫn đến một con số 11,8 cm với một Xaxis 10 cm với 1cm không gian giữa mỗi ve:
Các vấn đề liên quan
- 1. Cài đặt thủ công xticks bằng xaxis_date() bằng Python/matplotlib
- 2. khoảng cách thiết lập giữa các ô được nhóm theo nhóm trong matplotlib
- 3. matplotlib xticks nhãn chồng lên nhau
- 4. Xóa xticks trong âm mưu matplotlib?
- 5. khoảng cách giữa các khoảng trống imagettftext
- 6. Cách tính khoảng cách giữa nhiều điểm trong SQL Server?
- 7. Đặt khoảng cách giữa các nhịp sử dụng lề
- 8. Tính khoảng cách giữa hai điểm
- 9. Cách đặt khoảng thời gian trục sử dụng Matplotlib hoặc các thư viện khác trong python
- 10. Khoảng cách giữa các cột
- 11. Làm cách nào để thêm khoảng trắng giữa các dấu ticklabels và các trục trong matplotlib?
- 12. Khoảng cách giữa các mảng numpy, cột
- 13. Cách nhanh nhất để tính khoảng cách giữa hai CGPoints?
- 14. Khoảng cách giữa các địa chỉ
- 15. OpenLayers: Cách tính khoảng cách giữa hai điểm?
- 16. Khoảng cách UICollectionView giữa các ô?
- 17. Khoảng cách giữa các nhóm NSOutlineView
- 18. Google Maps - Cách lấy khoảng cách giữa hai điểm tính bằng mét?
- 19. Cài đặt ReSharper cho khoảng cách trong các nhận xét XML với các thuộc tính
- 20. Tìm khoảng cách giữa hai DIV bằng jQuery?
- 21. TableLayout - Xóa khoảng cách giữa các cột
- 22. Khoảng cách giữa các mục trong Listview
- 23. Khoảng cách giữa các chữ java.awt.font
- 24. Khoảng cách giữa các biểu đồ - matlab
- 25. Khoảng cách giữa các thead và tbody
- 26. tính khoảng cách bằng cách sử dụng gia tốc
- 27. Tính khoảng cách giữa hai vị trí địa lý
- 28. Tính khoảng cách giữa hai điểm (Vĩ độ, Kinh độ)
- 29. Tính toán khoảng cách xã hội giữa hai người dùng
- 30. Làm cách nào để đặt khoảng cách giữa các div động?