如何使用pythonMatplotlib重新创建此图形?

如何使用pythonMatplotlib重新创建此图形?,第1张

概述我想重新创建这样的东西: 但使用我自己的数据.我的数据如下: Number Name1 Structure mean stdev 1 Aldehydes RCH=O 122.76 7.67 2 Ketones R2C=O 8.11 0.15 2 我想重新创建这样的东西:

但使用我自己的数据.我的数据如下:

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重新创建此图形?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存