Python-绘图循环中的图形设置

问题描述 投票:0回答:1

enter image description here嗨我有一个小问题,我做了一个循环,每次迭代创建3个图并设置文本在x标签上旋转,但仅适用于连续的最后一个无花果。我不确定如何影响第一个和第二个数字。

  def multi_scatter(x_list, y):
    sns.set(style='whitegrid', rc={"grid.linewidth": 0.2})
    sns.set_context("paper", font_scale=2)  
    for x in range(0, len(x_list)):
      if x == 0 or x % 3:
        chart = sns.pairplot(data=ds_train,
        y_vars=[y],
        x_vars=[x_list[x], x_list[x+1], x_list[x+2]],
        height = 10)
        plt.xticks(rotation = 45)
        plt.show()
      else:
        continue

先谢谢您

python loops dataframe matplotlib
1个回答
0
投票

这是因为您定义了chart,但从未从chart中提取轴。您需要指定轴是什么才能设置xticklabels。尝试在代码中添加这些行(请参阅内部for循环):

def multi_scatter(x_list, y):
    sns.set(style='whitegrid', rc={"grid.linewidth": 0.2})
    sns.set_context("paper", font_scale=2)  
    for x in range(0, len(x_list)):
        if x == 0 or x % 3:
            chart = sns.pairplot(data=ds_train,
                                 y_vars=[y],
                       x_vars=[x_list[x], x_list[x+1], x_list[x+2]],
                       height = 10)
            for ax in chart.axes.flat:
                labels = ax.get_xticklabels()
                ax.set_xticklabels(labels=labels, rotation=45)
         else:
             continue

我在没有访问您的数据的情况下并未对其进行测试,所以请让我知道它是否有效!

© www.soinside.com 2019 - 2024. All rights reserved.