Python 如何在matplotlib中旋转图形的一个轴上的XTICK,而不使用;获得;将标签作为列表显示

Python 如何在matplotlib中旋转图形的一个轴上的XTICK,而不使用;获得;将标签作为列表显示,python,matplotlib,Python,Matplotlib,假设我有以下代码,该代码创建了一个具有两个轴的matplotlib图形,其中第二个具有x轴标签作为日期: import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt import datetime as dt x1 = np.arange(0,30) x2 = pd.date_range('1/1/2016', periods=30, freq='D') y1

假设我有以下代码,该代码创建了一个具有两个轴的matplotlib图形,其中第二个具有x轴标签作为日期:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import datetime as dt    

x1 = np.arange(0,30)
x2 = pd.date_range('1/1/2016', periods=30, freq='D')
y1 = np.random.randn(30)
y2 = np.random.randn(30)

%matplotlib inline
fig, ax = plt.subplots(1,2, figsize=(18,5))
ax[0].scatter(x1,y1)
ax[1].scatter(x2,y2)
在ipython笔记本中显示此项将在右侧显示图形的x轴标签,显示为相互碰撞。我想旋转标签以提高可见性。所有文档和在线搜索似乎都建议以下两个选项之一(都在上面最后一行之后):

#1

plt.setp(ax[1].xaxis.get_majorticklabels(),rotation=90,horizontalalignment='right')
或#2

plt.xticks(rotation=90)
这两种方法都可以,但也会打印标签列表(由于某些原因,第一个示例中的标签列表与第二个示例中的标签列表不同)


如何在不输出一些数组的情况下完成旋转/显示

我能够使用这种方法。不确定这是否是最优雅的方式,但它可以在不输出数组的情况下工作

for tick in ax[1].get_xticklabels():
    tick.set_rotation(90)

有点晚了,所以仅供将来参考:

Jupyter笔记本始终打印单元格中最后一个命令的返回值。 我只是通过添加另一个不返回任何内容的函数或语句来抑制这种情况,而不是为您想要调用的实际函数搜索一个变通方法

所以你可以做:

plt.xticks(rotation=90)
pass
或:


在Jupyter中,您也可以在命令的末尾加上分号,它将抑制输出。这对于在不打印返回数据的情况下绘制图形非常方便:

plt.xticks(rotation=90);

我猜这和ipython笔记本的设置有关。您是否尝试使用
%%capture
作为神奇的引号?
plt.xticks(rotation=90);