假设我有以下代码,它创建一个带有两个轴的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)
其中任何一个都可以使用,但也会打印标签列表(由于某种原因,第一个例子中的标签与第二个例子不同)
如何在不输出某些数组的情况下完成旋转/显示?
答案 0 :(得分:5)
我能够使用这种方法。不确定它是否是最优雅的方式,但它可以在不输出数组的情况下工作
for tick in ax[1].get_xticklabels():
tick.set_rotation(90)
答案 1 :(得分:0)
有点晚了,所以仅供将来参考:
Jupyter笔记本总是打印单元格中最后一个命令的返回值。 我会通过添加另一个不返回任何内容的函数或语句来抑制此问题,而不是搜索要调用的实际函数的变通方法。
所以你可以这样做:
plt.xticks(rotation=90)
pass
或:
plt.xticks(rotation=90)
plt.show()
答案 2 :(得分:0)
在Jupyter中,你也可以在命令结尾处打一个分号,它会抑制输出。这对于绘制图形而不打印返回的数据非常方便:
plt.xticks(rotation=90);