首页 \ 问答 \ 带有matplotlib散射的条件颜色(Conditional color with matplotlib scatter)

带有matplotlib散射的条件颜色(Conditional color with matplotlib scatter)

我有以下Pandas Dataframe,其中a列代表一个虚拟变量:

熊猫数据框架

我想做的是在列b的值之后给我的标记一个cmap='jet'颜色,除非列值为1,我希望它为灰色。

知道我怎么能这样做吗?


I have the following Pandas Dataframe, where column a represents a dummy variable:

Panda Dataframe

What I would like to do is to give my markers a cmap='jet' color following the value of column b except when column a value is 1 where I want it grey.

Any idea how I can do this?


原文:https://stackoverflow.com/questions/42453649
更新时间:2020-10-16 19:10

最满意答案

您必须标记等于1的值并绘制:

import matplotlib.pyplot as plt
import numpy as np

# test data
t = np.linspace(0, 2 * np.pi, 30)
x = np.sin(t)
x[3] = 1
y = np.cos(t)

# indices for 'bad' values
indices = x == 1
# calc colors from jet cmap
cmap = plt.get_cmap('jet')
colors = cmap((y - y.min()) / y.ptp())

# normal values
plt.scatter(t[~indices], x[~indices], c = colors[~indices], cmap = cmap)
# bad values
plt.scatter(t[indices], x[indices], c = 'grey')
plt.show()

在此处输入图像描述

数组t,x,y代表熊猫系列。


You have to mark your values which are equal to one and plot:

import matplotlib.pyplot as plt
import numpy as np

# test data
t = np.linspace(0, 2 * np.pi, 30)
x = np.sin(t)
x[3] = 1
y = np.cos(t)

# indices for 'bad' values
indices = x == 1
# calc colors from jet cmap
cmap = plt.get_cmap('jet')
colors = cmap((y - y.min()) / y.ptp())

# normal values
plt.scatter(t[~indices], x[~indices], c = colors[~indices], cmap = cmap)
# bad values
plt.scatter(t[indices], x[indices], c = 'grey')
plt.show()

enter image description here

Arrays t, x, y represent pandas series.

2017-02-25

相关问答

更多

Matplotlib散点图图例(Matplotlib scatter plot legend)

2D散点图 使用matplotlib.pyplot模块的scatter方法应该可以工作(至少在matplotlib 1.2.1中使用Python 2.7.5),如下面的示例代码所示。 此外,如果您正在使用散点图,则在图例调用中使用numpoints=1而不是numpoints=1 ,以便每个图例条目只有一个点。 在下面的代码中,我使用了随机值,而不是一遍又一遍地绘制相同的范围,使所有的图都可见(即不相互重叠)。 import matplotlib.pyplot as plt from numpy. ...

用于散点的matplotlib colorbar(matplotlib colorbar for scatter)

从matplotlib文档在散点1 : 仅当c是浮点数组时才使用cmap 所以颜色列表需要是一个浮动列表,而不是现在有一个元组列表。 plt.colorbar()想要一个可映射对象,像plt.scatter()返回的CircleCollection。 vmin和vmax可以控制您的色标的限制。 vmin / vmax之外的东西得到端点的颜色。 这对你有什么作用? import matplotlib.pyplot as plt cm = plt.cm.get_cmap('RdYlBu') xy = ...

在matplotlib的散点图中为每个系列设置不同的颜色(Setting different color for each series in scatter plot on matplotlib)

我不知道“手动”是什么意思。 您可以选择一个colourmap并使颜色阵列容易: import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm x = np.arange(10) ys = [i+x+(i*x)**2 for i in range(10)] colors = cm.rainbow(np.linspace(0, 1, len(ys))) for y, c in zip(ys, color ...

在matplotlib中的颜色与散点图(3d scatter plot with color in matplotlib)

可能不会。 我不知道你正在使用什么版本的Matplotlib但是在某些时候这个问题存在一个错误,显然仍然会对我今天使用的版本产生影响,即1.5.1(关于此问题 ,请查看此问题 )。 使@Yann解决方案适应您的问题应解决该问题。 我在计算机上测试了它,结果如下: import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D x = [3.28912855713, 3.31252670518] y = [4.6460 ...

删除matplotlib python中散点图的轮廓颜色(removing outline color of scatter plot in matplotlib python)

将参数edgecolors='none'传递给plt.scatter 。 不会绘制补丁边界。 将参数marker='s'传递给plt.scatter 。 标记样式为方形。 然后,我们有, 源代码, import numpy as np import matplotlib.pyplot as plt x = np.random.random(10) y = np.random.random(10) z = np.random.random(10) plt.scatter(x, y, c = z, ...

matplotlib从pandas数据框中分散颜色(matplotlib scatter color from pandas data frame)

您可以使用列表理解创建(value:color)对的字典,并将这些值用作plt.scatter上的color参数。 colors = {'yes': 'b', 'no': 'r'} plt.scatter(A['A'], A['B'], color=[colors[r] for r in A['C']]) 编辑:添加图例的首选方法是遍历数据集中的唯一类并使用legend参数。 因此,我们可以迭代由C分组的数据帧,并用标签参数单独绘制它们。 最后调用plt.legend()来显示它。 color ...

来自matplotlib的不同数据的散点图(scatter plot from different data via matplotlib)

您可以使用ax.twinx()创建共享相同x轴的第二个y轴 ax1 = pl.axes() ax2 = ax1.twinx() ax1.scatter(a,b,color='g',s=0.5) ax2.scatter(b,c,color='r') 您看到的错误可能是因为您在关键字参数( color='r' )之后有一个非关键字参数( 'b' color='r' )。 You can use ax.twinx() to create a second y-axis that shares the ...

Matplotlib散点图和直方图(Matplotlib Scatter and Histogram)

你在v1.2.1( https://github.com/matplotlib/matplotlib/pull/1985 )中遇到了一个错误。 你可以升级你的matplotlib,猴子修补你的版本与bug修复,或使用np.histogram和调用np.histogram与你自己的正确的参数顺序。 作为旁注,此问题所需的唯一代码是: x = np.random.rand(100) plt.hist(x, orientation='horizontal') plt.show() 你发布的其他一切都是 ...

Matplotlib散射3d颜色(Matplotlib scatter 3d colors)

您可以使用参数edgecolor和facecolor来设置边和面的颜色。 ax.scatter(x,y,z, s=100, edgecolor="r", facecolor="gold") 或者你可以使用参数c来直接设置颜色, ax.scatter(x,y,z, s=100, c="limegreen") 或者设置一个应该通过颜色图表示颜色的值范围。 最后一种方法还允许将所有点放在一个散点图中,如下所示: from mpl_toolkits.mplot3d import Axes3D impo ...

带有matplotlib散射的条件颜色(Conditional color with matplotlib scatter)

您必须标记等于1的值并绘制: import matplotlib.pyplot as plt import numpy as np # test data t = np.linspace(0, 2 * np.pi, 30) x = np.sin(t) x[3] = 1 y = np.cos(t) # indices for 'bad' values indices = x == 1 # calc colors from jet cmap cmap = plt.get_cmap('jet') c ...

相关文章

更多

最新问答

更多
  • 一个Web角色上的两个Web应用程序 - 配置问题(Two web applications on one Web Role - config issue)
  • Chrome扩展程序:在后台页面中存储变量是否安全?(Chrome extension : storing variables in background page is secure?)
  • C ++ 11中的atomics是否阻止编译器重新读取共享变量?(Do atomics in C++11 prevent compiler to re-read from shared variables?)
  • Java代码重组(Java code restructuring)
  • 从video.js获取currentTime(Get currentTime from video.js)
  • 3列 - 带溢流元件的中心柱流体(3 columns - center column fluid with an overflow element)
  • JSX节点中的TypeScript类型参数(TypeScript type arguments in JSX nodes)
  • .NET自定义事件组织帮助(.NET custom event organization assistance)
  • 如何将内存地址(如0xc20803a000)转换为字符串?(How to convert memory address (like 0xc20803a000) to string? Golang)
  • 从python中的列表创建新列表的最佳方法(Best way to create a new list from a list in python)
  • 为什么RabbitMQ会从破坏的持久性日志文件中脱颖而出?(Why does RabbitMQ keep breaking from a corrupt persister log file?)
  • 将对象添加到模型中,不更新dom(Adding object to model, doesn't update dom)
  • 将array.count转换为String(Convert array.count to String)
  • Chrome中的HTML (HTML in Chrome)
  • Sklearn:分类Imputer?(Sklearn: Categorical Imputer?)
  • 为什么iOS 9方法仍适用于iOS 8.4?(Why Do iOS 9 Methods Still Work on iOS 8.4?)
  • 输入类型文件无法获取angularjs中文件类型的文件名(input type file is unable to get the file name with file type in angularjs)
  • 为什么SplFixedArray的json_encode转储对象而不是数组?(Why does json_encode of a SplFixedArray dump an object instead of an array?)
  • ORA-01858:找到一个非数字字符,其中xp.executenonquery()上的数字是预期的(ORA-01858: a non-numeric character was found where a numeric was expected on xp.executenonquery())
  • 通过使用sscanf提取数据在BST插入函数中传递参数(Passing arguments in a BST insert function by extracting data using sscanf)
  • 混合c和c ++的问题(problem mixing c and c++)
  • 检查几个选项的文本(Checking text against several options)
  • 在Flex中创建Captch组件(Create Captch Component in Flex)
  • 查询非常复杂,不确定是否可能。(Very complicated query, not sure if it possible. Involves not adding to a running sum)
  • AOSP - networkAttributes中CSV的含义(AOSP - Meaning of CSV in networkAttributes)
  • 将不同表中的数据拖入单个视图中(Pulling data from different tables into a single view)
  • 从Enum Java调用随机值(更新)(Calling Random Value from an Enum Java)
  • jwplayer与vimeo插件(jwplayer with vimeo plugin)
  • CSS依赖于ActiveX?(CSS dependent on ActiveX?)
  • TPL Dataflow没有完成多个目标(TPL Dataflow not completing with multiple targets)