gpt4 book ai didi

python - 更改第一级轮廓的颜色

转载 作者:行者123 更新时间:2023-12-01 03:46:02 25 4
gpt4 key购买 nike

我正在使用这个脚本来绘制 Ramachandran 图(这种图在这里并不真正相关,重要的是输出的图形):

#!/usr/bin/python
# coding: utf-8

"""
Script to plot a heat map of the dihedral angles
http://stackoverflow.com/questions/26351621/turn-hist2d-output-into-contours-in-matplotlib
"""

import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm

# print(sys.argv[1])

frame, x, y = np.loadtxt(sys.argv[1], unpack=True)

fig = plt.figure(1)
ax = plt.subplot(111)


counts, ybins, xbins, image = plt.hist2d(x, y, bins=180, norm=LogNorm())
plt.clf()
plt.contourf(counts.transpose(), 10, extent=[xbins.min(),xbins.max(),ybins.min(),ybins.max()])

plt.colorbar()

fig.set_size_inches(30, 20)
plt.savefig(sys.argv[1], bbox_inches='tight')

这是我得到的:

final graph

这几乎就是我想要的。我希望第一个级别(颜色条上的 0-15)以最深的紫色显示,在图表上显示为白色。

可以吗?

最佳答案

将 15 以下的所有内容都设置为白色时, mask 是否有效?

from numpy import ma
counts_masked = ma.masked_where(counts<15, counts)
plt.contourf(counts_masked.transpose(), 10, extent=[xbins.min(),xbins.max(),ybins.min(),ybins.max()])

或者,另一个选择可能是:

levels = np.linspace(15,165,10) # your colorbar range, starting at 15
cmap = plt.get_cmap()
cmap.set_under(color='white')
plt.contourf(counts.transpose(), levels=levels, cmap=cmap, extent=[xbins.min(),xbins.max(),ybins.min(),ybins.max()])

关于python - 更改第一级轮廓的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38918306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com