【问题标题】:Line plot with different markers if condition is true python 3如果条件为真,则带有不同标记的线图 python 3
【发布时间】:2021-07-09 11:26:06
【问题描述】:

我正在尝试从数组的第 1 列创建线图。如果同一数组的第 2 列中的某个条件已满,则线图的标记应更改(如果条件已满,则标记 ='o',如果条件为假,则标记 ='x'。但是,结果我的情节不正确。

import numpy as np
import matplotlib.pyplot as plt
import random

###These are 100 random numbers
randomlist = random.sample(range(0, 100), 100)

###This is an array with 50 rows and 2 columns
arr = np.array(randomlist)
arr_re = arr.reshape(50,2)

### This is a lineplot of column 1 with different markers dependent on the value of column 2
figure, ax = plt.subplots(figsize=(13, 6))
for i in range(0,50,1):
 #figure, ax = plt.subplots(figsize=(13, 6))
 if arr_re[i,1] > 50:
  ax.plot(arr_re[i,0], color="black", marker='o', label='1880-1999')
 else:
  ax.plot(arr_re[i,0], color="black", marker='x', label='1880-1999')
plt.show()

也许有人可以给我一个提示。 干杯icorrect_result plot should look like this, however with changing markers according to the condition of column2

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    上述代码的主要问题是您忘记在绘图函数中添加 x 值。实现目标的一种方法是首先绘制随机点线,然后用不同的标记绘制点的散点图。请参阅下面我对您的代码的调整。

    import numpy as np
    import matplotlib.pyplot as plt
    import random
    
    ###These are 100 random numbers
    randomlist = random.sample(range(0, 100), 100)
    
    ###This is an array with 50 rows and 2 columns
    arr = np.array(randomlist)
    arr_re = arr.reshape(50,2)
    
    ### This is a lineplot of column 1 with different markers dependent on the value of column 2
    figure, ax = plt.subplots(figsize=(13, 6))
    
    # plot column 1
    plt.plot(arr_re[:,0])
    
    # scatter plot the markers based on a condition
    for i in range(0,50,1):
        if arr_re[i,1] > 50:
            ax.scatter(i,arr_re[i,0], color="black", marker='o', label='1880-1999')
        else:
            ax.scatter(i,arr_re[i,0], color="black", marker='x', label='1880-1999')
    plt.show()
    

    结果是:

    【讨论】:

    • 感谢您快速而正确的回复,它确实帮助了我。
    猜你喜欢
    • 1970-01-01
    • 2018-01-24
    • 2016-01-20
    • 2018-03-27
    • 2021-09-24
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多