<p>好的,基于NK_u帮助和内容:
<a href="https://stackoverflow.com/questions/47779560/matplotlib-creating-a-table-with-line-plots-in-cells">Matplotlib- Creating a table with line plots in cells?</a></p>
<p>我总算把它拼在一起了:</p>
<pre><code>import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
df = pd.DataFrame({'Name':["A","B","C","E","F"],'current':[3,4,7,6,6], 'minimum':[1,3,2,4,1], 'maximum':[10,14,11,7,10], 'average':[8,5,9,5,3]})
data = np.random.rand(100,5)
col1 = df["Name"]
col2 = df["current"]
col2colors = ["red", "g", "r", "r", "r"]
col3 = df["average"]
finalsc = "D+"
fig, axes = plt.subplots(ncols=5, nrows=5, figsize=(6,2.6),
gridspec_kw={"width_ratios":[1,1,1,3,3]})
fig.subplots_adjust(0.05,0.05,0.95,0.95, wspace=0.02, hspace=0.05) #wspace, hspace > bordi interni grigi della tabella
for ax in axes.flatten():
ax.tick_params(labelbottom=0, labelleft=0, bottom=0, top=0, left=0, right=0)
ax.ticklabel_format(useOffset=False, style="plain")
for _,s in ax.spines.items():
s.set_visible(True)
border = fig.add_subplot(111)
border.tick_params(labelbottom=0, labelleft=0, bottom=0, top=0, left=0, right=0)
border.set_facecolor("None")
text_kw = dict(ha="center", va="bottom", size=15)
for i,ax in enumerate(axes[:,0]):
ax.text(0.5, 0.2, col1[i], transform=ax.transAxes, **text_kw)
for i,ax in enumerate(axes[:,1]):
ax.text(0.5, 0.2, "{:.2f}".format(col2[i]),transform=ax.transAxes, **text_kw)
ax.set_facecolor(col2colors[i])
ax.patch.set_color(col2colors[i])
for i,ax in enumerate(axes[:,2]):
ax.text(0.5, 0.2, "{:.2f}".format(col3[i]),transform=ax.transAxes, **text_kw)
for i,ax in enumerate(axes[:,3]):
ax.plot(data[:,i], color="green", linewidth=1)
for i,ax in enumerate(axes[:,4]):
ax.plot([df['minimum'][index],df['maximum'][index]],[0,0],zorder=0)
ax.scatter(df['current'][index],0,zorder=1)
ax.scatter(df['average'][index],0,zorder=2)
plt.show()
</code></pre>
<p>老实说,我不知道我编写的代码是否是我可以使用的最好的代码,有许多部分我还需要理解。在</p>
<p>最后一个问题是:
有人能帮我在这张表上加上第一行,用粗体显示每一列的标题吗?
谢谢</p>