我试着调试我的代码有一段时间了,我需要帮助来绘制散点图。 当我试图绘制它时,它给了我一个错误:
ValueError: 'c' argument has 2 elements, which is not acceptable for use with 'x' with size 48, 'y' with size 48.
我的代码:
import numpy as np #importing numpy as np declaring as np
import matplotlib.pyplot as plt #importing matplotlib pyplot as plt
title = "COE revalidation" #title of the output
titlelen = len(title)
print("{:*^{titlelen}}".format(title, titlelen=titlelen+6))
print()
recoe = np.genfromtxt("data/annual-revalidation-of-certificate-of-entitlement-coe-of-existing-vehicles.csv", #loading dataset, storing it as recoe
dtype=(int,"U12","U18",int),
delimiter=",",
names=True)
years = np.unique(recoe["year"]) #extracting unique values from year column, storing it as years
type = np.unique(recoe["type"]) #extracting unique values from type column, storing it as type
category = np.unique(recoe["category"]) #extracting unique values from category column, storing it as category
category5 = recoe[recoe["type"]=="5 Year"] #extracting coe 5 year, storing it as category5
category10 = recoe[recoe["type"]=="10 Year"] #extracting coe 10 year, storing it as category10
category5numbers = category5["number"] #extracting 'number' from category5 and storing it as category5numbers (number of revalidation , 5 years)
category10numbers = category10["number"] #extracting 'number' from category10 and storing it as category5numbers (number of revalidation , 10 years)
colours =['tab:blue', 'tab:orange']
plt.figure(figsize=(7, 6))
plt.scatter(category5numbers,category10numbers,c= colours ,linewidth=1,alpha=0.75,edgecolor='black',s=200)
plt.title("Scatter Plot of category5 versus category10")
plt.xlabel("number of category 5 revalidation")
plt.ylabel("number of category 10 revalidation")
plt.tight_layout()
plt.show()
如果我没弄错的话,你试着用两个变量做一个散点图。你不能这么做。但是,如果可以将数据划分为多个因子,则可以传递颜色列表。数据集中的
Category
列可用于分隔数据。在表示与“x”和“y”坐标列表的索引相匹配的点。在
现在,让我们来解决这个问题。你会得到:
这意味着散点函数中的参数“c”必须与“x”和“y”坐标列表的大小相同(在您的例子中,category5个数字和category10个数字)。不能传递只有2个元素的列表,因为“c”参数的工作方式如下(考虑到您正在放弃为所有点设置相同的颜色,这可以通过将c设置为单一颜色格式字符串来完成)如下:
也就是说,如果你只给48个点2种颜色,散射函数不知道该怎么做!
从scatter docs可以得到'c'可以是。。。在
所以,总结一下,你必须:
查看this answer的第一部分,了解如何确定颜色,并理解我说的“x”“y”坐标列表和“c”的大小相同是什么意思。在
相关问题 更多 >
编程相关推荐