Python-126 绘制频率柱状图matplotlib和词云WordCloud 2021-10-07

绘制频率柱状图和词云:

from wordcloud import WordCloud
import PIL .Image as image

with open("C:\\Users\\Administrator\\Downloads\\bacdive-final.txt") as fp:
          text=fp.read()
          #print(text)
          #将文本放入WordCoud容器对象中并分析
          WordCloud = WordCloud().generate(text)
          image_produce = WordCloud.to_image()
          image_produce.show()

# coding: utf-8
import codecs
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.colors as colors

import jieba
# import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong']  # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei']

stopword=[u'collection',u'ATCC',u'BLAUTIA',u'0.00174757',u'ijsem.0',u'8.0',u'distilled',u'1.94175',u'H3BO3',u'0.436893',u'of',u'lDistilled',u'ATCC',u'0.398406',u'9.96016',u'4.90196',u'0.498008',u'0.293542',u'dsmz',u'05',u'catalogue',u'Name',u',',u'Leibniz',u'Composition',u'(',u')',u'"',u':',u';',u'H2O',u',',u'water',u'Curators',u'www',
          u'of',u'0.5',u'for',u'424',u'Lachnospira',u'0.000970874',u'0.000194175',u'add',u'torta',u'Anaerocolumna',u'Anaerostipes',u'producta',u'Dorea',u'to',u'to',u'brcWeb',u'pasteur',u'0.0037962',u'0.00494555',u'nov',u'33.0',u'43082',u'0.1',u'1.99601',u'106146'
    ,u'0.04',u'80',u'0.293542',u'.',u'100423',u'medium',u'WITH',u'NAOH',u'Na',u'Agar',u'Eubacterium',u'0.299401',u'100431',u'Extibacter',u'424',u'424',u'424',u'WT',u'tayi',u'Catenibacillus',u'FASTIDIOUS',u'scindens',u'4.99002',u'0.498008',u'1.97628',u'bacterium',u'Distilled',u'0.499501',u'0.01998',u'0.0799201',u'0.00999001',u'with',u'0.001',u'9.99001',u'4.0',u'0.000999001',u'0.0001',u'from',u'Ground',u'KCTC',u'0.3',u'0.2',u'0.999001',u'CO2',u'Enterocloster',u'0.02',u'4.94071',u'2.0',u'Clostridium',u'4.78011',u'10.0',u'06',u'N2',u'4.78011',u'0.03996',u'500.0',u'ml',u'15.0',u'sp',u'g/l',u'Zellkulturen',u'Blautia',u'CCUG',u'1.0',u'de',u'MODIFIED',u'BROTH',u'ANAEROBE',u'0.956023',u'JCM',u'CIP',u'ID',u'HCl',u'lD',u'lL',u'und',u'5.0',u'4.99501',u'lK2HPO4',u'acid',u'4.99501',u'0.0005',u'GmbH',u'von',u'lNa',u'details',u'MEDIUM',u'culture',u'20215',u'detailsu','extract',u'Institut',u'Sammlung',u'Mikroorganismen',u'”',u'“',u'Deutsche',u':',u'DSM',u'DSMZ',u'Medium',u'https',u'the',u'anaerobic',u'optional']
word = []
counter = {}

with codecs.open('C:\\Users\\Administrator\\Downloads\\bacdive-final.txt') as fr:
    for line in fr:
        line = line.strip()
        #print type(line)
        if len(line) == 0:
            continue
        line = jieba.cut(line, cut_all = False)
        for w in line:#.decode('utf-8'):
            if ( w in stopword) or len(w)==1: continue
            if not w in word :
                word.append(w)
            if not w in counter:
                counter[w] = 0
            else:
                counter[w] += 1

counter_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)

a=print(counter_list[:600])
#for i,j in counter_list[:50]:print i

label = list(map(lambda x: x[0], counter_list[:30]))
value = list(map(lambda y: y[1], counter_list[:30]))


plt.bar(range(len(value)), value,color=['r','g','b','k','y','m','c'], tick_label=label,width=0.7, )
plt.xticks(rotation=90,fontsize=8) # 旋转90度

plt.xlabel("Medium composition",fontsize=10)
plt.ylabel("Frequency")

plt.tight_layout()
plt.gcf().subplots_adjust(bottom=0.5)

plt.show()


f = open('C:\\Users\\Administrator\\Downloads\\1.txt','w')
f.write(a)
print (print(counter_list[:300]),file = f)
f.close()
#Casitone
#Tryptone

结果:


image.png


image.png

颜色修改的代码:

from wordcloud import WordCloud
import PIL .Image as image
with open("C:\\Users\\Administrator\\Downloads\\bacdive-final.txt") as fp:
          text=fp.read()
          #print(text)
          #将文本放入WordCoud容器对象中并分析
          WordCloud = WordCloud().generate(text)
          #image_produce = WordCloud.to_image()
          #image_produce.show()
# coding: utf-8
import codecs
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import jieba
# import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong']  # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
stopword=[u'collection',u'ATCC',u'BLAUTIA',u'0.00174757',u'ijsem.0',u'8.0',u'distilled',u'1.94175',u'H3BO3',u'0.436893',u'of',u'lDistilled',u'ATCC',u'0.398406',u'9.96016',u'4.90196',u'0.498008',u'0.293542',u'dsmz',u'05',u'catalogue',u'Name',u',',u'Leibniz',u'Composition',u'(',u')',u'"',u':',u';',u'H2O',u',',u'water',u'Curators',u'www',
          u'of',u'0.5',u'for',u'424',u'Lachnospira',u'0.000970874',u'0.000194175',u'add',u'torta',u'Anaerocolumna',u'Anaerostipes',u'producta',u'Dorea',u'to',u'to',u'brcWeb',u'pasteur',u'0.0037962',u'0.00494555',u'nov',u'33.0',u'43082',u'0.1',u'1.99601',u'106146'
    ,u'0.04',u'80',u'0.293542',u'.',u'100423',u'medium',u'WITH',u'NAOH',u'Na',u'Agar',u'Eubacterium',u'0.299401',u'100431',u'Extibacter',u'424',u'424',u'424',u'WT',u'tayi',u'Catenibacillus',u'FASTIDIOUS',u'scindens',u'4.99002',u'0.498008',u'1.97628',u'bacterium',u'Distilled',u'0.499501',u'0.01998',u'0.0799201',u'0.00999001',u'with',u'0.001',u'9.99001',u'4.0',u'0.000999001',u'0.0001',u'from',u'Ground',u'KCTC',u'0.3',u'0.2',u'0.999001',u'CO2',u'Enterocloster',u'0.02',u'4.94071',u'2.0',u'Clostridium',u'4.78011',u'10.0',u'06',u'N2',u'4.78011',u'0.03996',u'500.0',u'ml',u'15.0',u'sp',u'g/l',u'Zellkulturen',u'Blautia',u'CCUG',u'1.0',u'de',u'MODIFIED',u'BROTH',u'ANAEROBE',u'0.956023',u'JCM',u'CIP',u'ID',u'HCl',u'lD',u'lL',u'und',u'5.0',u'4.99501',u'lK2HPO4',u'acid',u'4.99501',u'0.0005',u'GmbH',u'von',u'lNa',u'details',u'MEDIUM',u'culture',u'20215',u'detailsu','extract',u'Institut',u'Sammlung',u'Mikroorganismen',u'”',u'“',u'Deutsche',u':',u'DSM',u'DSMZ',u'Medium',u'https',u'the',u'anaerobic',u'optional']
word = []
counter = {}
with codecs.open('C:\\Users\\Administrator\\Downloads\\bacdive-final.txt') as fr:
    for line in fr:
        line = line.strip()
        #print type(line)
        if len(line) == 0:
            continue
        line = jieba.cut(line, cut_all = False)
        for w in line:#.decode('utf-8'):
            if ( w in stopword) or len(w)==1: continue
            if not w in word :
                word.append(w)
            if not w in counter:
                counter[w] = 0
            else:
                counter[w] += 1
counter_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)
a=print(counter_list[:600])
#for i,j in counter_list[:50]:print i
label = list(map(lambda x: x[0], counter_list[:30]))
value = list(map(lambda y: y[1], counter_list[:30]))
plt.bar(range(len(value)), value,color=['r','g','b','k','y','#87CEFA','c','#00FF00','#F5DEB3','#00FA9A',

'#DB7093','#FFDAB9','#F4A460','#4682B4','#8B4513','#696969','#A0522D','#FFA07A','#FF69B4','#ADD8E6',
'#00FF7F','#00BFFF','#8B4513','#696969','#A0522D','#FFA07A','#8B008B','#D2691E','#DEB887' ,'#FFE4C4'],
        tick_label=label,width=0.7, )
plt.xticks(rotation=90,fontsize=8) # 旋转90度
plt.xlabel("Medium composition",fontsize=10)
plt.ylabel("Frequency")
plt.tight_layout()
plt.gcf().subplots_adjust(bottom=0.5)
plt.show()
f = open('C:\\Users\\Administrator\\Downloads\\1.txt','w')
f.write(a)
print (print(counter_list[:300]),file = f)
f.close()
#Casitone
#Tryptone
image.png

输出为pdf 保存到制定的文件位子:

# coding: utf-8
import codecs
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
import jieba
# import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong']  # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
stopword=[u'collection',u'ATCC',u'BLAUTIA',u'0.00174757',u'ijsem.0',u'8.0',u'distilled',u'1.94175',u'H3BO3',u'0.436893',u'of',u'lDistilled',u'ATCC',u'0.398406',u'9.96016',u'4.90196',u'0.498008',u'0.293542',u'dsmz',u'05',u'catalogue',u'Name',u',',u'Leibniz',u'Composition',u'(',u')',u'"',u':',u';',u'H2O',u',',u'water',u'Curators',u'www',
          u'of',u'0.5',u'for',u'424',u'Lachnospira',u'0.000970874',u'0.000194175',u'add',u'torta',u'Anaerocolumna',u'Anaerostipes',u'producta',u'Dorea',u'to',u'to',u'brcWeb',u'pasteur',u'0.0037962',u'0.00494555',u'nov',u'33.0',u'43082',u'0.1',u'1.99601',u'106146'
    ,u'0.04',u'80',u'0.293542',u'.',u'100423',u'medium',u'WITH',u'NAOH',u'Na',u'Agar',u'Eubacterium',u'0.299401',u'100431',u'Extibacter',u'424',u'424',u'424',u'WT',u'tayi',u'Catenibacillus',u'FASTIDIOUS',u'scindens',u'4.99002',u'0.498008',u'1.97628',u'bacterium',u'Distilled',u'0.499501',u'0.01998',u'0.0799201',u'0.00999001',u'with',u'0.001',u'9.99001',u'4.0',u'0.000999001',u'0.0001',u'from',u'Ground',u'KCTC',u'0.3',u'0.2',u'0.999001',u'CO2',u'Enterocloster',u'0.02',u'4.94071',u'2.0',u'Clostridium',u'4.78011',u'10.0',u'06',u'N2',u'4.78011',u'0.03996',u'500.0',u'ml',u'15.0',u'sp',u'g/l',u'Zellkulturen',u'Blautia',u'CCUG',u'1.0',u'de',u'MODIFIED',u'BROTH',u'ANAEROBE',u'0.956023',u'JCM',u'CIP',u'ID',u'HCl',u'lD',u'lL',u'und',u'5.0',u'4.99501',u'lK2HPO4',u'acid',u'4.99501',u'0.0005',u'GmbH',u'von',u'lNa',u'details',u'MEDIUM',u'culture',u'20215',u'detailsu','extract',u'Institut',u'Sammlung',u'Mikroorganismen',u'”',u'“',u'Deutsche',u':',u'DSM',u'DSMZ',u'Medium',u'https',u'the',u'anaerobic',u'optional']
word = []
counter = {}
with codecs.open('C:\\Users\\Administrator\\Downloads\\bacdive-final.txt') as fr:
    for line in fr:
        line = line.strip()
        #print type(line)
        if len(line) == 0:
            continue
        line = jieba.cut(line, cut_all = False)
        for w in line:#.decode('utf-8'):
            if ( w in stopword) or len(w)==1: continue
            if not w in word :
                word.append(w)
            if not w in counter:
                counter[w] = 0
            else:
                counter[w] += 1
counter_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)
a=print(counter_list[:600])
#for i,j in counter_list[:50]:print i
label = list(map(lambda x: x[0], counter_list[:30]))
value = list(map(lambda y: y[1], counter_list[:30]))
plt.bar(range(len(value)), value,color=['r','g','b','k','y','#87CEFA','c','#00FF00','#F5DEB3','#00FA9A',

'#DB7093','#FFDAB9','#F4A460','#4682B4','#8B4513','#696969','#A0522D','#FFA07A','#FF69B4','#ADD8E6',
'#00FF7F','#00BFFF','#8B4513','#696969','#A0522D','#FFA07A','#8B008B','#D2691E','#DEB887' ,'#FFE4C4'],
        tick_label=label,width=0.7, )
plt.xticks(rotation=90,fontsize=8) # 旋转90度
plt.xlabel("Medium composition",fontsize=10)
plt.ylabel("Frequency")
plt.tight_layout()
plt.gcf().subplots_adjust(bottom=0.5)
plt.savefig("C:\\Users\\Administrator\\Downloads\\bacdive-final.pdf", format='pdf')

即可!
参考:

https://www.jianshu.com/p/1c7bdc807087

你可能感兴趣的:(Python-126 绘制频率柱状图matplotlib和词云WordCloud 2021-10-07)