这是我的问题
这是我的两个DataFrames的示例(实际上我有30列)
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.DataFrame({"Marc":[6,0,8,-30,-15,0,-3],
"Elisa":[0,1,0,-1,0,-2,-4],
"John":[10,12,24,-20,7,-10,-30]})
df1 = pd.DataFrame({"Marc":[8,2,15,-12,-8,0,-35],
"Elisa":[4,5,7,0,0,1,-2],
"John":[20,32,44,-30,15,-10,-50]})我想创建一个具有两种不同颜色的散点图:如果df1的分数为负,则为1色,如果为正,则为1色,但我真的不知道怎么做。
我已经使用matplotlib做到了这一点
plt.scatter(df,df1);我还检查了这个链接Link,但问题是我有两个Pandas Dataframe,而不是这个链接上的numpy数组。因此,我不能使用c= np.sign(df.y)方法。我想保留熊猫DataFrame,因为我有很多专栏,但我真的坚持这一点。
如果任何人有解决方案,欢迎你!
发布于 2020-06-05 22:36:38
您可以传入颜色数组,但它似乎只适用于一维数组:
# colors as stated
colors = np.where(df1<0, 'C0', 'C1')
# stack and ravel to turn into 1D
plt.scatter(df.stack(),df1.stack(), c=colors.ravel())输出:

https://stackoverflow.com/questions/62217800
复制相似问题