0

我正在研究 matplotlib 并创建了一些图表,如条形图、气泡图等。

有人可以举例说明折线图和迷你图有什么区别,以及如何使用 matplotlib 在 python 中绘制迷你图吗?

例如使用以下代码

import matplotlib.pyplot as plt
import numpy as np
x=[1,2,3,4,5]
y=[5,7,2,6,2]
plt.plot(x, y)
plt.show()

生成的折线图如下:在此处输入图像描述

但是对于相同的数据,我无法理解折线图和火花留置权图之间的区别。请帮我理解

4

2 回答 2

12

迷你图与折线图相同,但没有轴或坐标。它们可用于以紧凑的方式显示数据的“形状”。

只需使用子图更改每个子图的结果属性,您就可以在同一图中填充多个线图Axes

data = np.cumsum(np.random.rand(1000)-0.5)
data = data - np.mean(data)

fig = plt.figure()
ax1 = fig.add_subplot(411) # nrows, ncols, plot_number, top sparkline
ax1.plot(data, 'b-')
ax1.axhline(c='grey', alpha=0.5)

ax2 = fig.add_subplot(412, sharex=ax1) 
ax2.plot(data, 'g-')
ax2.axhline(c='grey', alpha=0.5)

ax3 = fig.add_subplot(413, sharex=ax1)
ax3.plot(data, 'y-')
ax3.axhline(c='grey', alpha=0.5)

ax4 = fig.add_subplot(414, sharex=ax1) # bottom sparkline
ax4.plot(data, 'r-')
ax4.axhline(c='grey', alpha=0.5)


for axes in [ax1, ax2, ax3, ax4]: # remove all borders
    plt.setp(axes.get_xticklabels(), visible=False)
    plt.setp(axes.get_yticklabels(), visible=False)
    plt.setp(axes.get_xticklines(), visible=False)
    plt.setp(axes.get_yticklines(), visible=False)
    plt.setp(axes.spines.values(), visible=False)


# bottom sparkline
plt.setp(ax4.get_xticklabels(), visible=True)
plt.setp(ax4.get_xticklines(), visible=True)
ax4.xaxis.tick_bottom() # but onlyt the lower x ticks not x ticks at the top

plt.tight_layout()
plt.show()

迷你图

于 2016-08-26T21:29:57.067 回答
8

迷你只是删除了所有轴的常规图。很简单matplotlib

import matplotlib.pyplot as plt
import numpy as np

# create some random data
x = np.cumsum(np.random.rand(1000)-0.5)

# plot it
fig, ax = plt.subplots(1,1,figsize=(10,3))
plt.plot(x, color='k')
plt.plot(len(x)-1, x[-1], color='r', marker='o')

# remove all the axes
for k,v in ax.spines.items():
    v.set_visible(False)
ax.set_xticks([])
ax.set_yticks([])

#show it
plt.show()
于 2014-12-18T10:21:47.387 回答