簡體   English   中英

matplotlib x 軸值

[英]matplotlib x axis values

我對 matplotlib 中的 plot 的圖形表示有疑問。 有兩個問題:

  1. 我不計算每個 x 值的 y。 例如 y: [1.0, 3.5, 3.3, 1.1, 2.4] 的列表不對應於 x: [1, 2, 3, 4, 5],而是對應於 [2, 6, 10, 14, 18](空格總是規則的)。

我已經解決了這個問題,但是以非常不禮貌的方式:

plt.xticks(list(range(len(my_list))), list(range(bound[0], bound[1] + 1, delta)))

結果似乎相當不錯:

上面 xtick 的結果

  1. 當界限更寬時,就會出現更大的問題。 例子: 不可讀

范圍從 2 到 1000,增量為 10。x 軸值為 [2, 12, 22, 32, ...] 但它完全不可讀

所以......我已經嘗試了很多來創造更好的東西。 我以晦澀難懂的代碼結束:

    n_x_axis = 10 #number of values on axis
    x_axis_val = list(range(bound[0], bound[1]+1, delta))
    a = len(my_list)
    b = int(((bound[1]-bound[0] + 1)/delta)//n_x_axis)
    for i in range(0, a, b):
        if i + b < a:
            for j in range(b):
                if j != 0:
                    x_axis_val[i+j] = None
        else:
            for x in range(i, a):
                if x != a-1:
                    x_axis_val[x] = None

    plt.plot(my_list)
    plt.title("my_list")
    plt.xticks(list(range(len(my_list))), x_axis_val)

結果如下: bound = (2, 10000) delta = 10

在此處輸入圖像描述

我確信有更好的方法來解決我的問題。 也許存在一些適當的 function 到這個......盡管如此廣泛,我的解決方案仍然有缺點,例如 x 軸上的點很密集。

我該如何改進這個解決方案? 先感謝您。

您可以為相應的y值定義x值,然后使用 plot

plt.plot(x, y)

這樣,您就不需要弄亂任何滴答聲; matplotlib將自行執行此操作。 例如,您可以使用4步獲取x值列表

np.arange(0, 1000, 4)

文件:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM