【问题标题】:python mathplotlib for the real datapython matplotlib 用于真实数据
【发布时间】:2020-07-21 17:42:11
【问题描述】:

我正在尝试在 python 中绘制一些真实数据,但是我无法设置 y 轴上的值之间的特定步长。自动绘图,使用

plt.plot(step, chart, 'ro')
plt.show()

看起来像这样

但它应该看起来像这样(来自 excel):

我一直在尝试自定义 y 轴,但我只能设置最大值和最小值。请给我一些想法如何修复情节

亲切的问候

【问题讨论】:

  • 你能发布stepchart的样本吗?
  • "step" 是数字 1, 2, 3, ..., 200。"chart" 是数字 2.045408, 2,27245, ... - 通常在 -20 到 40 的范围内
  • 我的猜测是您的数字实际上是字符串,因此它们被视为类别而不是数量
  • 这就是我想查看数据样本的原因:D
  • 是的,它是字符串值。现在它工作正常,但我不知道为什么,但是在“plt.ylim(-20, 40, 5)”中,设置特定步骤(这里=5)不起作用,有什么建议吗?

标签: python matplotlib


【解决方案1】:

使用plt.ylim() 设置最大、最小、步长。

工作示例:

import matplotlib.pyplot as plt
import math
fig = plt.figure()
x = list(range(0,200))
y = [math.sqrt(5*val) for val in x]
plt.scatter(x,y)
plt.ylim(-20, 40, 10) # set ymin as -20, ymax as 40, and step size of 10
plt.xlim(0, 200, 50)
plt.show()

结果:

【讨论】:

    【解决方案2】:
    import matplotlib.pyplot as plt
    import math
    
    fig = plt.figure()
    
    axes = fig.add_subplot(111)
    
    axes.set_xlim(0, 200, 50)
    axes.set_ylim(-20, 40, 10)
    
    x = list(range(0,200))
    y = [math.sqrt(5*val) for val in x]
    
    axes.scatter(x, y, marker="D", label="Serie1")
    
    axes.grid(axis="y", linestyle="--", linewidth=0.5, color=".25", zorder=-10)
    
    axes.spines["top"].set_visible(False)
    axes.spines["right"].set_visible(False)
    axes.spines["bottom"].set_position("zero")
    
    axes.legend()
    
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2015-11-21
      • 2019-09-24
      • 2018-09-06
      • 2012-08-31
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多