Tôi đang cố gắng triển khai hàm DateListBarChart
lấy dữ liệu ngày và xuất ra biểu đồ thanh có cùng vị trí như DateListPlot
. Điều cốt yếu là chúng vẽ dữ liệu ở cùng vị trí ngang nếu được cung cấp cùng một dữ liệu, vì vậy chúng có thể được kết hợp bằng cách sử dụng Show
. Tôi thấy khó khăn để có được các thiết lập cho BarSpacing
phải để phạm vi ngang của cốt truyện không thay đổi, và các quán bar ở trong cơ bản cùng một vị trí.Tùy chọn BarSpacing thực sự được triển khai như thế nào trong Mathematica?
Tôi không thể suy ra tỷ lệ chính xác để BarSpacing->{0.2,0.3}
kết quả trong 20% độ dài trục x có sẵn cho nhóm thanh đó được lấy với khoảng cách giữa các thanh trong nhóm đó và 30% làm khoảng cách giữa các nhóm thanh. Vì lý do kỹ thuật, tôi đang thực hiện việc này bằng cách chuyển những thứ đến RectangleChart
. Theo tài liệu, BarSpacing
được coi là đơn vị tuyệt đối trong RectangleChart
. Rõ ràng là kích thước tuyệt đối của khoảng trống cần phải nhỏ hơn nếu có nhiều chuỗi hơn và các thanh cần phải hẹp hơn.
Một số ví dụ:
arList = FoldList[0.9 #1 + #2 &, 0.01, RandomReal[NormalDistribution[0, 1], 24]]
{0.01, 0.334557, 2.02709, 1.1878, 1.9009, 3.08604, 2.36652, 3.04111,
3.32364, 3.22662, 3.12626, 2.59118, 1.69334, 1.21069, 0.23171,
0.689415, -0.852649, -0.124624, 0.58604, -0.481886, 0.221074,
-0.300329, 2.36137, 0.427789, -1.47747}
dists = RandomChoice[{3, 4}, Length[arList]]
{4, 4, 4, 3, 4, 3, 4, 3, 4, 4, 3, 4, 4, 3, 4, 4, 4, 4, 3, 4, 3, 3, 3, 3, 3}
Kết quả trong:
RectangleChart[Transpose[{dists - 0 - 0/2, arList}],
PlotRange -> {{0, 100}, {-2, 4}}, ChartStyle -> EdgeForm[None],
Frame -> True, GridLines -> Automatic, BarSpacing -> {0, 0}]
RectangleChart[Transpose[{dists - 0.7 - 0.5/2, arList}],
PlotRange -> {{0, 100}, {-2, 4}}, ChartStyle -> EdgeForm[None],
Frame -> True, GridLines -> Automatic, BarSpacing -> {0.7, 0.5}]
Chú ý cách dữ liệu một không kéo dài cùng khoảng cách dọc theo trục x như ví dụ trước.
Nó trở nên rối rắm hơn khi cố gắng lập biểu đồ nhiều chuỗi (giống như trong ví dụ này, để minh hoạ).
RectangleChart[
Transpose[{{dists - i/2 - j/2, arList}, {dists - i/2 - j/2,
arList}}, {2, 3, 1}], PlotRange -> {{0, 180}, {-2, 4}},
ChartStyle -> EdgeForm[None], Frame -> True, Ticks -> None,
GridLines -> Automatic, BarSpacing -> {i, j}]
Tôi đã futzing cho các lứa tuổi cố gắng để tìm ra công thức đúng để BarSpacing
cài đặt cho các chức năng tùy chỉnh (không nhìn thấy ở đây) gây ra các spacings chính xác và độ rộng thanh để âm mưu ngang phạm vi không thay đổi khi BarSpacing
thực hiện.
Tôi đang thiếu gì?
EDIT: Để đáp lại belisarius, đây là ví dụ về nơi tôi đang hướng đến. Nó hoạt động, loại (các thanh không hoàn toàn phù hợp với dòng, nhưng đây có lẽ là những ngày tôi đang sử dụng) nhưng các trường hợp với các thanh xếp chồng không thể vẽ được với các thanh mà chúng cần, cũng như bất kỳ loại biểu đồ thanh của riêng nó khi có nhiều chuỗi. (Tôi rất tự hào về các thuật toán sắp xếp nhãn date: các cường quốc mà được tại nơi làm việc không muốn từ bỏ cái nhìn đó.)
Và đây là một trong đó chỉ không hoạt động. Dữ liệu phải điền vào phạm vi ngang. (Các thanh chiều rộng khác nhau được cân nhắc - đó là kết hợp dữ liệu hàng năm và hàng quý.)
EDIT 2
Tôi nhớ lý do tại sao tôi không sử dụng Filling
trong một DateListPlot
để vẽ các thanh như trong gói Mike Honeychurch của - nếu bạn có bất cứ điều gì khác hơn là thanh rất gầy, họ cuối cùng có cạnh trên ở sai chỗ.
DateListPlot[{dateARList},
PlotStyle -> {AbsolutePointSize[6], Yellow}, Filling -> {1 -> 0},
FillingStyle -> {1 -> {{AbsoluteThickness[12], Darker[Red, 0.25]}}},
PlotRange -> All]
Tôi nghĩ rằng 'chức năng VolumePlot' Mike Honeychurch của thể chứng minh hữu ích. Bạn có thể tìm thấy mã ở đây: http://library.wolfram.com/infocenter/MathSource/7526/ Theo như tôi có thể nói, mã này có vẻ là một phiên bản sơ bộ của các ô trực quan tài chính mới trong v8. Hữu ích? – telefunkenvf14
_Perhaps_ một ví dụ (ảnh) về những gì bạn đang cố gắng làm với 'DateListPlot' (mặc dù không thành công) có thể giúp tôi hiểu được vấn đề ... –
@belisarius - xem điều này có giúp ích gì không. Kiểu biểu đồ tổ chức rất cụ thể. – Verbeia