【问题标题】:seaborn style whitegrid with no ticksseaborn 风格的 whitegrid 没有蜱虫
【发布时间】:2021-05-29 16:09:11
【问题描述】:

我想创建一个没有 x 或 y 刻度的散点图。但我想看看白格风格的情节。当我明确设置 xticks 时,我也失去了 whitegrids。有什么技巧吗?

import matplotlib.pyplot as plt
plt.style.use('ggplot')
import numpy as np
fig, ax = plt.subplots(frameon=False)

colormap = np.array(["orange","cyan"])
x = np.array([2,2,2,4,4,4,4]*10)
y = np.array([2,4])
col = np.array(['b','g'])
colors = colormap[np.where(y==x[:,None])[1]]
Y = np.random.random((70,2))
plt.xticks([])
plt.yticks([])
ax.scatter(Y[:,0], Y[:,1], c=colors)

【问题讨论】:

  • 用背景颜色绘制刻度?
  • @Mr.T 我该怎么做? seaborn 可以吗?
  • 隐藏刻度标签的推荐方法是 ax.xaxis.set_major_formatter(matplotlib.ticker.NullFormatter()) 用于 x 和 y 轴。如果您还想隐藏刻度线:ax.tick_params(axis="both", length=0)

标签: matplotlib seaborn python-3.8 xticks


【解决方案1】:

您要删除刻度标签,而不是刻度本身。最好切换其可见性属性:

plt.setp(ax.get_xticklabels(), visible=False)
plt.setp(ax.get_yticklabels(), visible=False)

【讨论】:

    【解决方案2】:

    下面是T先生建议的可以参考的例子,你可以将xticks字体颜色设置为背景颜色。

    import matplotlib.pyplot as plt
    import numpy as np
    import seaborn as sns
    
    sns.set_style("whitegrid")
    
    fig, ax = plt.subplots(frameon=False)
    colormap = np.array(["orange","cyan"])
    
    x = np.array([2,2,2,4,4,4,4]*10)
    y = np.array([2,4])
    
    col = np.array(['b','g'])
    colors = colormap[np.where(y==x[:,None])[1]]
    
    Y = np.random.random((70,2))
    
    ax.scatter(Y[:,0], Y[:,1], c=colors)
    ax.tick_params(axis="both", colors="white") #suggested by Mr T, easier way
    # plt.setp(ax.get_xticklabels(),color="white", backgroundcolor="white") # suggested by Me
    # plt.setp(ax.get_yticklabels(),color="white", backgroundcolor="white") # suggested by Me
    

    我采用了T先生的回答,比较简单,不那么复杂。

    【讨论】:

    • @Mr T : 我采纳了你的建议,你的比我的容易。
    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多