簡體   English   中英

以 2 為底的對數刻度

[英]Logarithmic scale with base 2

我有以下幾對點,我想要 plot 使用對數刻度。

import matplotlib.pyplot as plt
f, ax = plt.subplots(1)
xdata = [256, 512, 1024, 2048]
ydata = [1, 2, 30, 150]
ax.scatter(xdata, ydata)
ax.set_ylim(ymin=0)
ax.set_xlim(xmin=0)
plt.show(f)

在此處輸入圖像描述

這些點呈現,但我不知道如何使比例在兩個軸上都以 2 為底進行對數。 我希望每個增量都將值加倍,例如 x 增量應該是 0、256、512、1024、2048(字節),y 增量應該是分鍾,現在數據以秒為單位:0、1、2、4、8、16 , 32.

可以嗎?

你想要的是一個對數尺度(而不是指數)。 我想這就是你自己找不到答案的原因,否則你很容易就會得到相應的matplotlib例子

以下應該有效(與您的要求唯一不同的是軸標簽的形式為2 n而不是普通數字):

import matplotlib.pyplot as plt
f, ax = plt.subplots(1)
xdata = [256, 512, 1024, 2048]
ydata = [1, 2, 30, 150]
plt.xscale('log', basex=2)
plt.yscale('log', basey=2)
ax.scatter(xdata, ydata)
ax.set_ylim(ymin=0)
plt.show(f)

如果有人正在尋找新的方法來做到這一點,因為

plt.xscale('log', basex=2)

不再工作,使用

ax.set_xscale('log', base=2)

暫無
暫無

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

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