Python 散点图数据在 X 轴上表现不佳
Python plot scatter data don't behave well on X axis
不确定如何解释我的问题,基本上我是想用 :
绘制一些东西
plt.scatter(fichi_i,fre_i,c=duree_i, s=50,cmap='hot')
“fichi_i”的位置,例如:
[10, 21, 25, 28, 36, 41, 48]
例如,我希望我的 X 轴从 0 到 500 开始。怎么做 ?没有任何迹象表明情节从 10 到 48。
我已经在其他脚本中尝试过以下方法:
plt.xlim(0,500)
ax.set_xticks(np.arange(0, 500, 50))
ax.set_xlim(0,500)
plt.gca().set_xlim(left=0)
所有人都得到相同的结果:情节仍然从 10 开始。
当我将前几行中的“0”替换为“10”时,情节从... 20 开始!所以它似乎做了一些事情,但它就像那些命令中的“0”是“fichi_i”变量的第一个值,而不是轴的实际 0。我设法通过使用而不是“0”、“-10”找到了解决方法。所以 x 轴从“0”开始...我不知道如何更改轴的最大值。
现在另一个问题是,在我的绘图中,数组的点之间没有“space”。就像“21”对应的点紧跟在“10”的点之后,它们之间没有对应10个值的空白。我这里的数组有“7”值,如果我将 X 轴的最大限制设置为 7,我会看到所有值。如果我将它设置为 100,我有 7 个值和 93 个空格,从 48(这是第 7 个值)到 100。
基本上我怎么能说“x 轴从 0 到 100”并让点到达正确的位置,x 轴的第 10 个值上的 10,...它在绘图上工作正常但分散这是一场噩梦Idk为什么行为不一样。
我用来绘制顺便说一句的代码:
w, h = figaspect(1/3)
fig, ax = plt.subplots(1,figsize=(w,h))
plt.xlabel('test number')
plt.scatter(fichi_i,fre_i,c=duree_i, s=50,cmap='hot')
plt.colorbar(label='time(s)')
ylims = ax.get_ylim()
xlims = ax.get_xlim()
plt.show()
谢谢。我希望我的解释很清楚,但我不确定如何解释。
使用 plt.xlim(0, 500) 对我有用,我怀疑它被错误地放置在代码中。它必须介于:
fig , ax = plt.subplots(1, figsize=(w,h))
和
plt.show()
完整代码:
import matplotlib.pyplot as plt
w, h = plt.figaspect(1/3)
fig, ax = plt.subplots(1,figsize=(w,h))
fichi_i = [10, 21, 25, 28, 36, 41, 48]
fre_i = [10, 21, 25, 28, 36, 41, 48]
duree_i = ['red' for _ in fre_i]
plt.xlabel('test number')
plt.scatter(fichi_i,fre_i,c=duree_i, s=50,cmap='hot')
plt.colorbar(label='time(s)')
ylims = ax.get_ylim()
xlims = ax.get_xlim()
plt.xlim((10, 500))
plt.show()
不确定如何解释我的问题,基本上我是想用 :
绘制一些东西plt.scatter(fichi_i,fre_i,c=duree_i, s=50,cmap='hot')
“fichi_i”的位置,例如:
[10, 21, 25, 28, 36, 41, 48]
例如,我希望我的 X 轴从 0 到 500 开始。怎么做 ?没有任何迹象表明情节从 10 到 48。
我已经在其他脚本中尝试过以下方法:
plt.xlim(0,500)
ax.set_xticks(np.arange(0, 500, 50))
ax.set_xlim(0,500)
plt.gca().set_xlim(left=0)
所有人都得到相同的结果:情节仍然从 10 开始。
当我将前几行中的“0”替换为“10”时,情节从... 20 开始!所以它似乎做了一些事情,但它就像那些命令中的“0”是“fichi_i”变量的第一个值,而不是轴的实际 0。我设法通过使用而不是“0”、“-10”找到了解决方法。所以 x 轴从“0”开始...我不知道如何更改轴的最大值。
现在另一个问题是,在我的绘图中,数组的点之间没有“space”。就像“21”对应的点紧跟在“10”的点之后,它们之间没有对应10个值的空白。我这里的数组有“7”值,如果我将 X 轴的最大限制设置为 7,我会看到所有值。如果我将它设置为 100,我有 7 个值和 93 个空格,从 48(这是第 7 个值)到 100。
基本上我怎么能说“x 轴从 0 到 100”并让点到达正确的位置,x 轴的第 10 个值上的 10,...它在绘图上工作正常但分散这是一场噩梦Idk为什么行为不一样。
我用来绘制顺便说一句的代码:
w, h = figaspect(1/3)
fig, ax = plt.subplots(1,figsize=(w,h))
plt.xlabel('test number')
plt.scatter(fichi_i,fre_i,c=duree_i, s=50,cmap='hot')
plt.colorbar(label='time(s)')
ylims = ax.get_ylim()
xlims = ax.get_xlim()
plt.show()
谢谢。我希望我的解释很清楚,但我不确定如何解释。
使用 plt.xlim(0, 500) 对我有用,我怀疑它被错误地放置在代码中。它必须介于:
fig , ax = plt.subplots(1, figsize=(w,h))
和
plt.show()
完整代码:
import matplotlib.pyplot as plt
w, h = plt.figaspect(1/3)
fig, ax = plt.subplots(1,figsize=(w,h))
fichi_i = [10, 21, 25, 28, 36, 41, 48]
fre_i = [10, 21, 25, 28, 36, 41, 48]
duree_i = ['red' for _ in fre_i]
plt.xlabel('test number')
plt.scatter(fichi_i,fre_i,c=duree_i, s=50,cmap='hot')
plt.colorbar(label='time(s)')
ylims = ax.get_ylim()
xlims = ax.get_xlim()
plt.xlim((10, 500))
plt.show()