但使用我自己的数据.我的数据如下:
Number name1 Structure mean stdev 1 Aldehydes RCH=O 122.76 7.67 2 Ketones R2C=O 8.11 0.15 2 AmIDes R-CONr2 20.1 83.24
我该如何重新创建这个情节呢?我得到了:
from pylab import *import numpy data = numpy.genfromtxt('data',unpack=True,names=True,dtype=None) pos = arange(size(data['Number']))ax2.errorbar(pos,data['mean'],yerr=data['stdev'])
但我无法让这个情节与我的榜样相似.有人可以为此发布示例代码吗?
解决方法 您可以首先将数据绘制为误差条,然后使用相应的文本对其进行注释.下面是一个简单的代码供您开始:
import numpy as npimport matplotlib.pyplot as pltdata = np.genfromtxt('data.txt',dtype=None)fig,ax = plt.subplots()ax.set_yticklabels([])ax.set_xlabel(r'ppm ($\delta$)')pos = np.arange(len(data))#invert y axis so 1 is at the topax.set_ylim(pos[-1]+1,pos[0]-1)ax.errorbar(data['mean'],pos,xerr=data['stdev'],fmt=None)for i,(name,struct) in enumerate(zip(data['name1'],data['Structure'])): ax.text(data['mean'][i],i-0.06,"%s,%s" %(name,struct),color='k',ha='center')plt.show()
更改注释中单个字母的颜色将非常棘手,因为matplotlib不支持多色文本.我试图找到一个解决方法,使用正则表达式来注释两次相同的文本(一个只有红色的“C”和没有“C”的一个),但因为每个字母不占用相同的空间,它不会所有单词的工作都很好(见下文).
#add to the importimport re#and changefor i,data['Structure'])): text_b = ax.text(data['mean'][i],i-0.05,ha='center') text_b.set_text(text_b.get_text().replace('C',' ')) text_r = ax.text(data['mean'][i],"%s %s" %(name,color='r',ha='center') text_r.set_text(re.sub('[abd-zABD-Z]',' ',text_r.get_text())) text_r.set_text(re.sub('[0-9\=\-\W]',' ',text_r.get_text()))总结
以上是内存溢出为你收集整理的如何使用python // Matplotlib重新创建此图形?全部内容,希望文章能够帮你解决如何使用python // Matplotlib重新创建此图形?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)