正值和负值的不同颜色的散点图
Scatter Plot with different color for positive and negative values
这是我的问题
这是我的两个 DataFrame 的示例(我实际上有 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 种颜色;如果为正,则为一种颜色,但我真的不知道该怎么做。
我已经使用 matplotlib 做到了
plt.scatter(df,df1);
我也检查了这个 link 但问题是我有两个 Pandas Dataframe
而不是这个 link 上的 numpy 数组。因此我不能使用 c= np.sign(df.y)
方法。
我想保留 Pandas DataFrame,因为我有很多专栏,但我确实坚持了这一点。
如果有人有解决方案,欢迎您!
您可以传入颜色数组,但它似乎只适用于一维数组:
# 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())
输出:
这是我的问题
这是我的两个 DataFrame 的示例(我实际上有 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 种颜色;如果为正,则为一种颜色,但我真的不知道该怎么做。
我已经使用 matplotlib 做到了
plt.scatter(df,df1);
我也检查了这个 link c= np.sign(df.y)
方法。
我想保留 Pandas DataFrame,因为我有很多专栏,但我确实坚持了这一点。
如果有人有解决方案,欢迎您!
您可以传入颜色数组,但它似乎只适用于一维数组:
# 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())
输出: