如何为matplotlib.pypplot.scatter设置X和Y间隔?

问题描述

我有以下代码来绘制两个变量“ field_size”和“ field_mean_LAI”:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />

<body>
  <div className="cover-container d-flex h-100 p-3 mx-auto flex-column">
    <header className="masthead mb-auto">
      <div className="inner">
        <a href="/"></a>
        <nav className="nav nav-masthead justify-content-center">
          <a>Link Examples</a>
        </nav>
      </div>
    </header>
    <br/>

    <div className="row">
      <div className="card col-lg-11 ml-5 mr-5 text-dark">
        <div className="card-body">
          <h1 className="display-4">Universal</h1>
          <p className="lead card-text">
            Lots of long text would go here to cause issues!</p>
          <p className="lead">
            <a href="/buy" className="btn btn-lg btn-dark">Purchase Button</a>
          </p>
        </div>
      </div>
    </div>
    <br/>

    <footer className="mastfoot mt-auto text-white">
      <div className="inner">
        <p>&copy; Footer</p>
      </div>
    </footer>
  </div>

结果是一个散点图: “

enter image description here

如何配置x和y间隔并更改绘图的颜色?我是python绘图的初学者。

解决方法

要更改打印点的颜色,可以使用 color 属性(如下所示)。

要设置两个轴的极限,可以传递 xlim ylim 参数 在创建子图时。

还请注意,我还在此处传递了 rot 参数,以设置 x 标签旋转。

要配置 x y 间隔,您可以使用例如 MultipleLocator , 对于主要次要刻度。还有其他定位器 在网上搜索详细信息。

您可以设置的其他元素也是网格(就像我一样)。

因此您可以将代码更改为:

import matplotlib.pyplot as plt
import matplotlib.ticker as tck

fig = plt.figure(figsize=(10,5))
ax = plt.subplot(xlim=(-0.000003,0.000123),ylim=(-0.5,9))
df.plot.scatter(x='field_size',y='field_lai_mean',rot=30,color='r',ax=ax)
plt.title("Field Size and LAI Plot")
plt.xlabel("Field Size")
plt.ylabel("Mean LAI")
ax = plt.gca()
ax.yaxis.set_major_locator(tck.MultipleLocator(2))
ax.yaxis.set_minor_locator(tck.MultipleLocator(0.4))
ax.xaxis.set_major_locator(tck.MultipleLocator(0.00001))
ax.xaxis.set_minor_locator(tck.MultipleLocator(0.0000025))
ax.grid()
plt.show()

当然,可以根据需要调整传递的值。

对于非常有限的几点,我得到以下图片:

enter image description here

,

所以我修改了我的代码,如下所示:

plt.figure(figsize=(20,10))
plt.scatter(df.field_size,df.field_lai_mean)
plt.title("Field Size and LAI Plot")
plt.xlabel("Field Size")
plt.ylabel("Mean LAI")

plt.xticks(np.arange(0.00000,0.00013,step=0.000008))
plt.yticks(np.arange(0,8.5,step=0.5))

plt.show()

现在我有一个这样的情节:

enter image description here

只需定义xticks和yticks函数,就可以顺利完成! :)