Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何绘制范围数据的散点图_Python_Python 3.x_Pandas_Dataframe_Matplotlib - Fatal编程技术网

Python 如何绘制范围数据的散点图

Python 如何绘制范围数据的散点图,python,python-3.x,pandas,dataframe,matplotlib,Python,Python 3.x,Pandas,Dataframe,Matplotlib,我有范围数据,例如,一家教育机构正在为一批在线课程的学生收费 如果有1-4名学生参加,费用为10000/批 如果有5-10名学生参加,费用为15000/批 如果有11-20名学生参加,费用为22000/批 x和y是matplotlib的xlable和Yable。在这种情况下,如何转换x的数据并将其打印为xlable。可以将x和y数组转换为数值数组,用于创建散点图: 将x字符串转换为范围 席席席= [List](范围(int(Xi(0)),int(Xi(1))+ 1))席席in [Xi,in(-'

我有范围数据,例如,一家教育机构正在为一批在线课程的学生收费

如果有1-4名学生参加,费用为10000/批

如果有5-10名学生参加,费用为15000/批

如果有11-20名学生参加,费用为22000/批


x和y是matplotlib的xlable和Yable。在这种情况下,如何转换x的数据并将其打印为xlable。

可以将
x
y
数组转换为数值数组,用于创建散点图:

  • 将x字符串转换为范围
  • 席席席= [List](范围(int(Xi(0)),int(Xi(1))+ 1))席席in [Xi,in(-')] #[[1, 2, 3, 4], [5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]]
  • 在相应的x范围内,每个条目添加一个y元素
  • y_expanded=[(x[0],[x[1]]*len(x[0])表示zip中的x(x_范围,y)]
    #[([1, 2, 3, 4], [10000, 10000, 10000, 10000]),
    # ([5, 6, 7, 8, 9, 10], [15000, 15000, 15000, 15000, 15000, 15000]),
    # ([11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
    #  [20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000])]
    
  • 将x和y阵列重新分组
  • xy_排序=列表(映射(列表,zip(*y_展开)))
    #[[[1, 2, 3, 4], [5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]],
    # [[10000, 10000, 10000, 10000],
    #  [15000, 15000, 15000, 15000, 15000, 15000],
    #  [20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000]]]
    
  • 展平x和y值的列表
  • x_result=[x代表xy中的子列表_排序[0]代表x代表子列表]
    #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    y_结果=[y表示xy中的子列表_排序[1]表示y表示子列表]
    #[10000, 10000, 10000, 10000, 15000, 15000, ...]
    
  • 创建散点图
  • plt.xticks(x_结果)
    plt.ylim(0,最大值(y_结果)+1000)
    plt.散射(x_结果,y_结果)
    plt.show()
    

    那么你想总共画20点吗?@MustafaAydın是的
    x = ['1-4','5-10','11-20']
    y = [10000,15000,20000]