每个子图的旋转轴文本

2023-12-04

我正在尝试绘制散点矩阵。我正在建立这个线程中给出的示例matplotlib中有制作散点图矩阵的函数吗?。在这里,我只是稍微修改了代码,使轴对所有子图都可见。修改后的代码如下

import itertools
import numpy as np
import matplotlib.pyplot as plt

def main():
    np.random.seed(1977)
    numvars, numdata = 4, 10
    data = 10 * np.random.random((numvars, numdata))
    fig = scatterplot_matrix(data, ['mpg', 'disp', 'drat', 'wt'],
            linestyle='none', marker='o', color='black', mfc='none')
    fig.suptitle('Simple Scatterplot Matrix')
    plt.show()

def scatterplot_matrix(data, names, **kwargs):
    """Plots a scatterplot matrix of subplots.  Each row of "data" is plotted
    against other rows, resulting in a nrows by nrows grid of subplots with the
    diagonal subplots labeled with "names".  Additional keyword arguments are
    passed on to matplotlib's "plot" command. Returns the matplotlib figure
    object containg the subplot grid."""
    numvars, numdata = data.shape
    fig, axes = plt.subplots(nrows=numvars, ncols=numvars, figsize=(8,8))
    fig.subplots_adjust(hspace=0.05, wspace=0.05)

    for ax in axes.flat:
        # Hide all ticks and labels
        ax.xaxis.set_visible(True)
        ax.yaxis.set_visible(True)

#        # Set up ticks only on one side for the "edge" subplots...
#        if ax.is_first_col():
#            ax.yaxis.set_ticks_position('left')
#        if ax.is_last_col():
#            ax.yaxis.set_ticks_position('right')
#        if ax.is_first_row():
#            ax.xaxis.set_ticks_position('top')
#        if ax.is_last_row():
#            ax.xaxis.set_ticks_position('bottom')

    # Plot the data.
    for i, j in zip(*np.triu_indices_from(axes, k=1)):
        for x, y in [(i,j), (j,i)]:
            axes[x,y].plot(data[x], data[y], **kwargs)

    # Label the diagonal subplots...
    for i, label in enumerate(names):
        axes[i,i].annotate(label, (0.5, 0.5), xycoords='axes fraction',
                ha='center', va='center')

    # Turn on the proper x or y axes ticks.
    for i, j in zip(range(numvars), itertools.cycle((-1, 0))):
        axes[j,i].xaxis.set_visible(True)
        axes[i,j].yaxis.set_visible(True)
    fig.tight_layout()
    plt.xticks(rotation=45)
    fig.show()
    return fig

main()

我似乎无法旋转所有子图的 x 轴文本。可以看出,我尝试了 plt.xticks(rotation=45) 技巧。但这似乎仅对最后一个子图进行旋转。


只需迭代与图形相关的轴,将活动轴设置为迭代对象,然后修改:

for ax in fig.axes:
    matplotlib.pyplot.sca(ax)
    plt.xticks(rotation=90)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每个子图的旋转轴文本 的相关文章

  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • Python Tkinter 在 GUI 中嵌入 Matplotlib

    我正在尝试将绘图嵌入到用 Python 编码的 Tkinter GUI 中 我相信下面的代码成功地将图形放入画布中 但我无法控制 GUI 网格中的画布位置 我希望能够将 GUI 的一部分作为情节 而不是全部 我怎样才能定位这个画布小部件 u
  • 如何在 matplotlib 图中显示数据

    I m trying to make an interactive plot in the jupyter notebook but i don t know exactly how to implement it Having a dat
  • 如何使用 pyplot 旋转绘图 x 轴和 y 轴

    import matplotlib pyplot as plt import numpy as np x1 0 0 02 0 04 0 08 0 12 0 16 0 2 y1 0 0005 0 052 0 0905 0 1675 0 248
  • 有没有办法在 matplotlib 中使用二元颜色图?

    换句话说 我想制作一个热图 或曲面图 其中颜色随着以下函数而变化2变量 具体来说 亮度 幅度 色调 相位 是否有任何本地方法可以做到这一点 类似情节的一些示例 几个很好的例子正好 说明了我想做的事情 http lcni uoregon ed
  • 在 Python 中绘制 Excel 中的数据

    我必须从 Excel 文件中读取和绘制数据的代码是这样的 import pandas as pd import matplotlib pyplot as plt excel file file1 xlsx file1 pd read exc
  • 使用 matplotlib 设置或固定二元分布值

    I ve animated a bivariate gaussian distribution using matplotlib 我已经计算过这个distribution通过调整COV matrix来考虑特定的变量 我可以提供有关此过程的更
  • 为什么我突然有一个弹跳的 Python 火箭?

    最近 我对在 OS X 10 10 Python 2 7 6 上运行的一些 matplotlib 代码做了一个简单的更改 注释掉了设置我使用的后端的一行 matplotlib use agg 现在 只要我的代码正在运行 我的扩展坞中就会出现
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • 在 matplotlib 中使用一组标量值对球体表面着色

    我对 matplotlib 相当陌生 这也是我的第一个问题 我试图代表脑电图记录的头皮表面电位 到目前为止 我已经有了一个球体投影的二维图形 它是使用轮廓生成的 并且几乎可以归结为普通的热图 有什么方法可以在半个球体上完成此操作吗 即生成一
  • 使用 matplotlib 同时绘制两个直方图时,不透明度会产生误导

    假设我有两个直方图 我使用 hist 参数设置不透明度 alpha 0 5 我绘制了两个直方图 但我得到了三种颜色 我理解从不透明的角度来看这是有道理的 但 向某人展示具有三种颜色的两个事物的图表会让人非常困惑 我可以以某种方式将每个垃圾箱
  • Matplotlib pyplot - 刻度控制和显示日期

    My matplotlib pyplot有太多xticks 目前显示 15 年期间的每年和每月 例如 2001 01 但我只希望 x 轴显示年份 例如 2001 年 输出将是一个折线图 其中 x 轴显示日期 y 轴显示销售和租金价格 Def
  • 将每个数组的散点移动 delta x

    I m trying to sort out a plot which at the moment looks like this 我正在尝试找出如何针对不同的情况进行轮班dx每个数据集的值 在这种模式下 系列的最后一项保持在中心 在这种情
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5
  • 如何在 matplotlib 中设置日期的 xticklabels

    我正在尝试绘制两个列表中的值 x 轴值是日期 到目前为止尝试过这些事情 year 20070102 20070806 20091208 20111109 20120816 20140117 20140813 yvalues 0 5 0 5
  • 在seaborn barplot之前隐藏文本[重复]

    这个问题在这里已经有答案了 我正在尝试使用seaborn打印条形图 plt figure figsize 16 6 g sns barplot x A y B data df g set xticklabels g get xticklab
  • 更改Python pylab玫瑰/极坐标图中图例标题的字体大小

    我正在尝试更改玫瑰图或 极地 图上现有图例标题的字体大小 大部分代码是由不在的其他人编写的 我已经添加 ax legend title legend title setp l get title fontsize 8 添加标题 legend
  • 将图例添加到曲面图

    我正在尝试向表面图添加图例 但无法这样做 这是代码 import numpy as np from mpl toolkits mplot3d import Axes3D import matplotlib pyplot as plt imp
  • 当 plt.plot() 调用在其他单元格中完成时, plt.show() 为空

    Context 我必须为物理作业编写一个 Jupyter 笔记本 并且必须绘制一些图表来显示某些数量的演变等 我必须通过每次在代码和 Markdown 单元之间交替来解释我编写的几乎每一行代码 包括plot 电话 这就是我的问题的来源 简而

随机推荐