guy*_*guy 5 python plot matplotlib pandas
我有一个 Pandas 数据框,我在其中绘制了 12 列中的两列,一列作为 x 轴,另一列作为 y 轴。x 轴只是一个时间序列,y 轴是值是介于 -5000 和 5000 之间的随机整数。
有什么方法可以仅使用这 2 列来制作散点图,其中 y 的正值是某种颜色,负值是另一种颜色?
我尝试了很多变化,但什么也做不了。我尝试对负数/正数使用不同的颜色图、颜色网格、使用 seaborn 颜色图和布尔值掩码。我没办法。
使用颜色图为散点的点着色的想法当然是合理的。如果您使用的是plt.scatter
绘图,则可以提供颜色图在c
参数中选择颜色所依据的值。
在这里你只需要两个值,所以c= np.sign(df.y)
是一个合适的选择。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.DataFrame({'x': np.arange(25), 'y': np.random.normal(0,2500,25)})
fig, ax = plt.subplots()
ax.scatter(df.x, df.y, c=np.sign(df.y), cmap="bwr")
plt.show()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6751 次 |
最近记录: |