你如何改变用matplotlib绘制的图形的大小?
我想沿着x轴水平移动一些刻度标签,而不移动相应的刻度.
更具体地说,当旋转标签时plt.setp,标签文本的中心保持与刻度线对齐.我想将这些标签向右移动,以便标签的近端对齐,如下图所示.

我知道这篇文章和这一个,但答案很有意思组装机,而不是严格的问题的答案.
我的代码:
import matplotlib.pyplot as plt
import numpy as np
import datetime
# my fake data
dates = np.array([datetime.datetime(2000,1,1) + datetime.timedelta(days=i) for i in range(365*5)])
data = np.sin(np.arange(365*5)/365.0*2*np.pi - 0.25*np.pi) + np.random.rand(365*5) /3
# creates fig with 2 subplots
fig = plt.figure(figsize=(10.0, 6.0))
ax = plt.subplot2grid((2,1), (0, 0))
ax2 = plt.subplot2grid((2,1), (1, 0))
## plot dates
ax2.plot_date( dates, data )
# rotates labels
plt.setp( ax2.xaxis.get_majorticklabels(), rotation=-45 )
# try to shift labels …Run Code Online (Sandbox Code Playgroud) 是否有可能在jupyter笔记本中缩放matplotlib图的绘图大小?您可以通过更改默认值来增加绘图大小figure.figsize,但这不会影响fontsize,linewidth,markersize等参数.我需要的是一个绘图,其中所有参数都相应缩放.
PS:要在我使用的jupyter笔记本中显示情节%matplotlib inline,请参见下面的截图.

为了完整起见,这里有一个完全符合我需要的代码片段:
def scale_plot_size(factor=1.5):
import matplotlib as mpl
default_dpi = mpl.rcParamsDefault['figure.dpi']
mpl.rcParams['figure.dpi'] = default_dpi*factor
Run Code Online (Sandbox Code Playgroud) [编辑] 正如答案中的评论所建议的,该问题可能与操作系统有关。我在 Windows 10 上。我有 python 3.7.1,我使用 Anaconda/Spyder。
我按照这个和这个主题尝试在保存之前最大化由绘图生成的图像。在我的代码中,有效的是来自 spyder figure viewer 的图确实最大化了。但是当文件保存到图像中时,图像并没有最大化。
我该如何解决?
我的代码如下:
import matplotlib as mpl
mpl.use('TkAgg') # With this line on: it returns me error. Without: image don't save as it has been shown in plot from spyder.
from datetime import datetime
import constants
import numpy as np
from numpy import *
from shutil import copyfile
from matplotlib.pyplot import *
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
import matplotlib.pyplot as plt …Run Code Online (Sandbox Code Playgroud) 我使用以下方法创建了一个图形:
import matplotlib.pyplot as plt
%matplotlib inline
fig1 = plt.figure(figsize=(2, 2), dpi=100)
Run Code Online (Sandbox Code Playgroud)
我想提高图形的分辨率,所以我将dpifig1从100增加到200。但是,这将像素尺寸从(200, 200)更改为(400, 400),这是我不想要的。如果我让 dpi=200 和 figsize=(1, 1),像素尺寸仍然是 (200, 200),但图像看起来很有趣。请在此处查看我的 Jupyter 笔记本的输出。
Matplotlib 中有没有办法在 Jupyter 中渲染时增加fig1的分辨率而不改变其像素尺寸?
(注意:我用来生成上面链接的数字的代码来自这个问题。)
我正在尝试使用 plt.savefig 将绘图保存到文件中,但是我对输出的图片质量不满意。更改 dpi 选项无济于事。
plt.savefig('filename.png', dpi=1200, format='png', bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)
我尝试保存到 'svg' 和 'eps' - 没有区别。我想知道问题是否出在其他方面,比如某个库或操作系统的版本或类似的东西。看起来问题也不在于分辨率,而在于绘制线条和符号的方式 - 太粗了。
plt.show()显示出明显更好的图片,我可以将它以令人满意的质量保存为 png - 令人惊讶的是文件大小大约小 8 倍(因为压缩,我想,这很好。)