polar_legend
极轴上的图例极轴图上的图例演示。 1234567891011121314151617181920import matplotlib.pyplot as pltimport numpy as np# radar green, solid grid linesplt.rc('grid', color='#316931', linewidth=1, linestyle='-')plt.rc('xtick', labelsize=15)plt.rc('ytick', labelsize=15)# force square figure and square axes looks better for polar, IMOfig = plt.figure(figsize=(8, 8))ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='polar', facecolor='#d...
polar_scatter
极轴上的散点图在这个例子中,尺寸径向增加,颜色随角度增加(只是为了验证符号是否正确分散)。 1234567891011121314151617import numpy as npimport matplotlib.pyplot as plt# Fixing random state for reproducibilitynp.random.seed(19680801)# Compute areas and colorsN = 150r = 2 * np.random.rand(N)theta = 2 * np.pi * np.random.rand(N)area = 200 * r**2colors = thetafig = plt.figure()ax = fig.add_subplot(111, projection='polar')c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75) 极轴上的散点图,具有偏移原点与先前图的主要区别在于原点半径的配置,产...
create_subplots
轻松创建子图在matplotlib的早期版本中,如果你想使用pythonic API并创建一个图形实例,并从中创建一个子图的网格,可能有共享轴,它涉及相当数量的样板代码。例如: 1234567891011import matplotlib.pyplot as pltimport numpy as npx = np.random.randn(50)# old stylefig = plt.figure()ax1 = fig.add_subplot(221)ax2 = fig.add_subplot(222, sharex=ax1, sharey=ax1)ax3 = fig.add_subplot(223, sharex=ax1, sharey=ax1)ax3 = fig.add_subplot(224, sharex=ax1, sharey=ax1) 费尔南多·佩雷斯提供了一个很好的方法来创建子图的一切 subplots()(最后注意“s”),并为整个群体打开x和y共享。您可以单独打开轴… 123# new style method 1; unpack the axesfig,...
common_date_problems
修复常见的日期困扰Matplotlib允许您原生地绘制python日期时间实例,并且在大多数情况下可以很好地选择刻度位置和字符串格式。 有一些事情没有得到如此优雅的处理,这里有一些技巧可以帮助你解决它们。我们将在numpy记录数组中加载一些包含datetime.date对象的样本日期数据: 12345678910111213In [63]: datafile = cbook.get_sample_data('goog.npz')In [64]: r = np.load(datafile)['price_data'].view(np.recarray)In [65]: r.dtypeOut[65]: dtype([('date', '<M8[D]'), ('', '|V4'), ('open', '<f8'), ('high', '<f8'...
fill_between_alpha
在和Alpha之间填充fill_between()函数在最小和最大边界之间生成阴影区域,这对于说明范围很有用。 它具有非常方便的用于将填充与逻辑范围组合的参数,例如,仅在某个阈值上填充曲线。 在最基本的层面上,fill_between 可用于增强图形的视觉外观。让我们将两个财务时间图与左边的简单线图和右边的实线进行比较。 1234567891011121314151617181920212223242526import matplotlib.pyplot as pltimport numpy as npimport matplotlib.cbook as cbook# load up some sample financial datawith cbook.get_sample_data('goog.npz') as datafile: r = np.load(datafile)['price_data'].view(np.recarray)# Matplotlib prefers datetime instead of np.dat...
index
我们最喜欢的技巧这是一个简短的教程,示例和代码片段的集合,说明了一些有用的惯例和技巧,以制作更流畅的图形和克服一些matplotlib缺陷。
share_axis_lims_views
共享轴限制和视图制作共享轴的两个或更多个图是常见的,例如,两个子图以时间作为公共轴。 当您平移和缩放其中一个时,您希望另一个随身携带。 为此,matplotlib Axes支持sharex和sharey属性。创建subplot()或axes()实例时,可以传入一个关键字,指示要与之共享的轴。 123456789101112import numpy as npimport matplotlib.pyplot as pltt = np.arange(0, 10, 0.01)ax1 = plt.subplot(211)ax1.plot(t, np.sin(2*np.pi*t))ax2 = plt.subplot(212, sharex=ax1)ax2.plot(t, np.sin(4*np.pi*t))plt.show() 下载这个示例 下载python源码: share_axis_lims_views.py 下载Jupyter notebook: share_axis_lims_views.ipynb
placing_text_boxes
放置文本框使用文本框装饰轴时,有两个有用的技巧是将文本放在轴坐标中(请参阅转换教程),因此文本不会随着x或y限制的变化而移动。 您还可以使用文本的bbox属性用Patch实例包围文本 - bbox关键字参数使用带有Patch属性的键的字典。 123456789101112131415161718192021222324import numpy as npimport matplotlib.pyplot as pltnp.random.seed(19680801)fig, ax = plt.subplots()x = 30*np.random.randn(10000)mu = x.mean()median = np.median(x)sigma = x.std()textstr = '\n'.join(( r'$\mu=%.2f$' % (mu, ), r'$\mathrm{median}=%.2f$' % (median, ), r'$\sigma=%.2f$'...
transparent_legends
透明、花式的图形有时您在绘制数据之前就知道数据的样子,并且可能知道例如右上角没有太多数据。然后,您可以安全地创建不覆盖数据的图例: 1ax.legend(loc='upper right') 其他时候你不知道你的数据在哪里,默认的loc =’best’会尝试放置图例: 1ax.legend() 但是,您的图例可能会与您的数据重叠,在这些情况下,使图例框架透明是很好的。 12345678910111213import matplotlib.pyplot as pltimport numpy as npnp.random.seed(1234)fig, ax = plt.subplots(1)ax.plot(np.random.randn(300), 'o-', label='normal distribution')ax.plot(np.random.rand(300), 's-', label='uniform distribution')ax.set_ylim(-3...
annotate_transform
注释变换此示例显示如何使用不同的坐标系进行注释。 有关注释功能的完整概述,另请参阅注释教程。 123456789101112131415161718192021222324252627282930313233import numpy as npimport matplotlib.pyplot as pltx = np.arange(0, 10, 0.005)y = np.exp(-x/2.) * np.sin(2*np.pi*x)fig, ax = plt.subplots()ax.plot(x, y)ax.set_xlim(0, 10)ax.set_ylim(-1, 1)xdata, ydata = 5, 0xdisplay, ydisplay = ax.transData.transform_point((xdata, ydata))bbox = dict(boxstyle="round", fc="0.8")arrowprops = dict( arrowstyle = "->", connect...














