2016-04-28 132 views
0

我有一個二維(numpy)數組,我用命令plt.plot(wp [:,0])繪製第一列。這顯示了我想要的內容,除了x軸標籤之外,我不想改變任何內容。對於x軸,我正在搜索一個命令,該命令顯示第二列值相同的區域,並顯示該區域的y編號。用matplotlib x軸標記

[x1,y1] 
[x2,y2] 
[x3,y2] 
[x4,y3] 
[x5,y3] 
[x6,y3] 
[x7,y4] 

正如你可以在我的示例矩陣中看到的,第二列中的條目不是唯一的,而是具有相同值的「區域」。

編輯:所以plt.xticks(TX,可溼性粉劑[:,2],旋轉= '垂直')的較小尺寸的矩陣工作,但看起來非常難看爲較大的:small matrices

Large matrices

所以在我看來,如果每個數字只出現一次就足夠了。你知道怎麼做嗎?

+0

您可以使用'plt.xticks(wp [:,0],labels)自定義刻度標籤''http://matplotlib.org/examples/ticks_an d_spines/ticklabels_demo_rotation.html – user3148185

+0

這實際上適用於小型矩陣,但對於較大的矩陣看起來非常糟糕 – HighwayJohn

回答

1

你必須:

  • 定製時一定值

examples修改打印什麼蜱數量:

import matplotlib.pyplot as plt 
from matplotlib.ticker import FuncFormatter, MaxNLocator 
fig = plt.figure() 
ax = fig.add_subplot(111) 
xs = range(100) 
ys = range(100) 


def format_fn(tick_val, tick_pos): 
    return '{0}'.format(int(tick_val))[:1] 

ax.xaxis.set_major_formatter(FuncFormatter(format_fn)) 
ax.xaxis.set_major_locator(MaxNLocator(nbins=6,integer=True)) 
ax.plot(xs, ys) 
plt.show() 
+0

結果看起來並不樂觀。我想這隻適用於,如果具有相同價值的地區是相同的大小? – HighwayJohn

+0

如果你看一下這個例子,你會發現即使你繪製了很多點(26),你也只是在選擇其中的一些點(a,d,g ......)。對於你的情況,你必須在 –

+0

之前計算垃圾桶(或「班級」)的數量。但是我的數值沒有相同的區間長度,並且看到區間大小非常重要。這將是完美的,如果只是第一個變化的x-tick會顯示...(例如0.1 ... 2 .... 3 ..... 4 ... 5.6) – HighwayJohn