在python中使用matplotlib创建迷你图

Cod*_*477 0 python matplotlib sparklines

我正在研究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()
Run Code Online (Sandbox Code Playgroud)

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

但我无法得到相同数据的折线图和火花留置权图表之间的区别.请帮我理解

ece*_*ulm 8

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

只需使用子图更改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()
Run Code Online (Sandbox Code Playgroud)

迷你


hit*_*tzg 6

一个迷你图图仅仅是一个普通的情节在卸下所有轴.很简单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()
Run Code Online (Sandbox Code Playgroud)

  • 没有区别.迷你图*是*线图.只是没有(可见)轴,并且非常平坦和宽阔的形状. (2认同)