【问题标题】:No color when I make python scatter color plot using third variable to define color当我使用第三个变量定义颜色制作python散点图时没有颜色
【发布时间】:2016-10-23 16:56:38
【问题描述】:

我尝试使用第三个变量来定义颜色来制作彩色散点图。使用以下代码很简单:

plt.scatter(mH, mA, s=1, c=mHc)
plt.colorbar()
plt.show()

但我没有太多选择来修改情节的框架。我正在尝试以下代码来制作彩色散点图,同时我尝试优化情节的框架:

import numpy as np
import math
from matplotlib import rcParams
import matplotlib.pyplot as plt
from matplotlib.ticker import AutoMinorLocator

fig, ax = plt.subplots()

cax = ax.scatter(mH,mA,s=0.5,c=mHc) ### mH, mA, mHC are the dataset
fig.colorbar(cax)
minor_locator1 = AutoMinorLocator(6)
minor_locator2 = AutoMinorLocator(6)
ax.xaxis.set_minor_locator(minor_locator1)
ax.yaxis.set_minor_locator(minor_locator2)
ax.tick_params('both', length=10, width=2, which='major')
ax.tick_params('both', length=5, width=2, which='minor')
ax.set_xlabel(r'$m_H$')
ax.set_ylabel(r'$m_A$')
ax.set_xticks([300,600,900,1200,1500])
ax.set_yticks([300,600,900,1200,1500])

plt.savefig('mH_mA.png',bbox_inches='tight')
plt.show()

但我得到的情节是黑白的。看起来问题出在标记大小参数上,但我不太清楚如何纠正它。我想要更小的标记尺寸。任何人都可以给我一些想法来解决这个问题。谢谢

【问题讨论】:

    标签: python matplotlib plot colorbar


    【解决方案1】:

    size=0.5 非常小——可能你看到的只是标记的轮廓。我建议你稍微增加一下大小,或者通过edgecolors="none" 关闭标记边缘笔划:

    import numpy as np
    from matplotlib import pyplot as plt
    
    n = 10000
    x, y = np.random.randn(2, n)
    z = -(x**2 + y**2)**0.5
    
    fig, ax = plt.subplots(1, 1)
    ax.scatter(x, y, s=5, c=z, cmap="jet", edgecolors="none")
    

    您可能还想尝试使用alpha= 参数使点半透明:

    ax.scatter(x, y, s=20, c=z, alpha=0.1, cmap="jet", edgecolors="none")
    

    当您有如此大量的重叠点时,很难让散点图看起来不错。我很想将您的数据绘制为二维直方图或等高线图,或者甚至是散点图和等高线图的组合:

    density, xe, ye = np.histogram2d(x, y, bins=20, normed=True)
    ax.hold(True)
    ax.scatter(x, y, s=5, c=z, cmap="jet", edgecolors="none")
    ax.contour(0.5*(xe[:-1] + xe[1:]), 0.5*(ye[:-1] + ye[1:]), density,
               colors='k')
    

    【讨论】:

    • 非常感谢。很有帮助。
    猜你喜欢
    • 2012-01-02
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2020-02-23
    相关资源
    最近更新 更多