2011-12-02 12 views
7

Herhangi bir Mathematica çizelgesinde veya çiziminde y ekseninde% değerlerini nasıl gösterebilirim?Bir plotun y ekseninde% değerlerini nasıl gösterebilirim?

Bu gibi veri olabilir:

data = {{{2010, 8, 3}, 0.}, {{2010, 8, 31}, -0.052208}, {{2010, 9, 30}, 
    0.008221}, {{2010, 10, 29}, 0.133203}, {{2010, 11, 30}, 
    0.044557}, {{2010, 12, 31}, 0.164891}, {{2011, 1, 31}, 
    0.055141}, {{2011, 2, 28}, 0.114801}, {{2011, 3, 31}, 
    0.170501}, {{2011, 4, 29}, 0.347566}, {{2011, 5, 31}, 
    0.461358}, {{2011, 6, 30}, 0.244649}, {{2011, 7, 29}, 
    0.41939}, {{2011, 8, 31}, 0.589874}, {{2011, 9, 30}, 
    0.444151}, {{2011, 10, 31}, 0.549095}, {{2011, 11, 30}, 0.539669}}; 

[email protected] 

Sadece y ekseni% 0 ila% 60 yerine 0.6 0.0 aralığında istiyoruz.

cevap

8

Kullanım FrameTicks -> {{left, right},{bottom, up}}

DateListPlot[data, 
      FrameTicks -> {{{{0.0, "0%"}, {0.1, "10%"}, {0.2, "20%"}, 
           {0.3, "30%"}, {0.4, "40%"}, {0.5, "50%"}, 
           {0.6, "60%"}}, None}, 
          {Automatic, None}}] 

FrameTicks için tablo oluşturulabilir, örneğin

Table[{k/10., [email protected](10 k) <> "%"}, {k, 6}] 
(* Out[10] := {{0.1, "10%"}, {0.2, "20%"}, {0.3, "30%"}, {0.4, "40%"}, {0.5, "50%"}, {0.6, "60%"}} *) 

Eğer rakamlar çok LevelScheme, iyi araziler üreten yapan ücretsiz paket var yapmanız gerekiyorsa Mathematica, özellikle onay işaretleri söz konusu olduğunda çok daha kolay.

DÜZENLEME: Jagra'nın önerisi uyarınca, veri kümesine ve istenen onay adımlarına göre bir onay belirtimi listesi oluşturan bir işlev buradadır. Varsayımlar veri yapısının her zaman aynı olmasıdır. Sorunuzun herhangi Mathematica arsa belirtir beri

ticks[step_, data_] := {{Table[{k, [email protected]@(100 k) <> "%"}, 
           {k, 
           Floor[[email protected][[All, 2]], step], 
           Ceiling[[email protected][[All, 2]], step], 
           step}], None}, 
         {Automatic, None}}; 

Şimdi FrameTicks eserler yalnızca çerçeveli unutmayın, bir komplo fonksiyonu

plot = DateListPlot[#, FrameTicks -> ticks[.1, #]] & 

tanımlayıp Nihayet bu [email protected]

gibi kullanabilirsiniz parseller, diğer araziler için Ticks -> {{x ticks},{y ticks}} kullanın.

+1

Çözümü daha önceden otomatikleştirmek için aşağıdakileri denedim. Birisi muhtemelen daha da basitleştirebilir: DateListPlot [data, FrameTicks -> {{Table [{k/10., ToString @ (10 k) <> "%"}, {k, IntegerPart [Kat [Min @ data [] [All, 2]], .1] * 10], IntegerPart [Tavan [Max @ data [[All, 2]], .1] * 10] }], Yok}, {Otomatik, Hiçbiri}}] – Jagra

-1

Grafik seçeneklerini göremiyorum, böyle bir olasılık var, ancak numaranızı sağa çevirecek bir ara işlev oluşturabilirsiniz. Bu işlevin grafiğini görüntüleyeceksiniz. Bu kolayca yapılabilir. İyi şanslar! senin y ekseni değerleri varsayarsak

+2

Söylemek üzüldüm ama bu cevap, belirsiz ve neredeyse bilgi eksikliği, yanı sıra, aynı zamanda yanlıştır. –

5

oranları olarak verilen ve yüzde olarak bunları istiyorsanız, en basit çözümdür:

DateListPlot[{#1, 100 #2} & @@@ data] 

enter image description here

6

Sen FrameTicks kurcalıyor deneyin olabilir:

enter image description here