我的问题与python - scatter plot with dates and 3rd variable as color
中的问题非常相似但是我希望颜色根据我的第3个变量中的3组值而变化。
例如:
#my 3rd variable consists of a column with these planet radii values:
radii
1 70
2 6
3 54
4 3
5 0.3
...
我希望根据radii> 8、4 我尝试使用另一个问题中介绍的简单代码: 但是我不知道如何为z内的不同集合指定'c'参数。
我也尝试使用: 但我不知道如何进行。 结果将是分散的点,这些点由第三列“半径”中的值所引导的颜色分隔开,但是我使用第一个代码得到的全部是黑色的点,或者使用第二个代码告诉它我说我是一个字符串,我不能把它放在列表上:( 我该如何实现?db=table_with_3_columns()
x=db['column a']
y=db['column b']
z=db['radii']
plt.scatter(x,y,c=z,s=30)
a=[]
for i in db['radii']
if i>8:
a['bigradii']=i
elif i<4:
a['smallradii']=i
elif i<8 and i>4:
a['mediumradii']=i
return a
答案 0 :(得分:0)
我认为您应该做的是
list
,稍后将在分散函数中将其传递给'c'。这是我的意思的示例:
import numpy as np
import matplotlib.pyplot as plt
# x and y will have 100 random points in the range of [0,1]
x = np.random.rand(100)
y = np.random.rand(100)
# z will have 100 numbers, in order from 1 to 100
# z represents your third variable
z = np.arange(100)
colors = []
# add 1 or 2 to colors according to the z value
for i in z:
if i > 50:
colors.append(2)
else:
colors.append(1)
# half the points will be painted with one color and the other half with another one
plt.scatter(x, y, c=colors,)
plt.show()