ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

Python5ÖÖ¿ÉÊÓ»¯¹¤¾ß

¸üÐÂʱ¼ä:2017Äê12ÔÂ18ÈÕ15ʱ37·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

ÔÚ Python ÖУ¬½«Êý¾Ý¿ÉÊÓ»¯ÓжàÖÖÑ¡Ôñ£¬ÕýÊÇÒòΪÕâÖÖ¶àÑùÐÔ£¬ºÎʱѡÓúÎÖÖ·½°¸²Å±äµÃ¼«¾ßÌôÕ½ÐÔ¡£±¾Îİüº¬ÁËһЩ½ÏΪÁ÷ÐеŤ¾ßÒÔ¼°ÈçºÎʹÓÃËüÃÇÀ´´´½¨¼òµ¥µÄÌõÐÎͼ£¬ÎÒ½«Ê¹ÓÃÏÂÃæ¼¸ÖÖ¹¤¾ßÀ´Íê³É»æÍ¼Ê¾Àý£º

· Pandas

· Seaborn

· ggplot

· Bokeh

· pygal

ʲôÊÇ Matplotlib?

Matplotlib ÊÇÖÚ¶à Python ¿ÉÊÓ»¯°üµÄ±Ç׿¡£Æä¹¦Äܷdz£Ç¿´ó£¬Í¬Ê±Ò²·Ç³£¸´ÔÓ¡£Äã¿ÉÒÔʹÓà Matplotlib È¥×öÈκÎÄãÏë×öµÄÊÂÇ飬µ«ÊÇÏëÒª¸ãÃ÷°×È´²¢·ÇÒ×Ê¡£ÎÒ²»´òËãչʾԭÉúµÄ Matplotlib Àý×Ó£¬ÒòΪºÜ¶à¹¤¾ß(ÌØ±ðÊÇ Pandas ºÍ Seaborn)ÊÇ»ùÓÚ Matplotlib µÄÇáÁ¿¼¶·â×°¡£

Pandas

Ê×ÏÈ£¬µ¼ÈëÄ£¿é²¢½«Êý¾Ý¶ÁÈë budget DataFrame£¬½«Êý¾ÝÅÅÐò²¢È¡Ç°10Ìõ¡£

import pandas as pd

budget = pd.read_csv("mn-budget-detail-2014.csv")

budget = budget.sort('amount',ascending=False)[:10]

ÎÒÃǽ«ÔÚËùÓÐʾÀýÖÐʹÓÃÏàͬµÄ budget Êý¾Ý£¬ÏÂÃæÊÇÆäÖÐ5Ìõ£º

ÏÖÔÚ£¬µ÷Õûչʾ·ç¸ñΪ¸üÃÀ¹ÛµÄĬÈÏÉèÖ㬲¢´´½¨Í¼±í£º

pd.options.display.mpl_style = 'default'

budget_plot = budget.plot(kind="bar",x=budget["detail"],

title="MN Capital Budget - 2014",

legend=False)

ÉÏÊö´úÂëʹÓà detail ÁеÄÊý¾ÝÍê³ÉÁË´´½¨Í¼±íµÄÖ÷Òª¹¤×÷£¬Í¬Ê±Õ¹Ê¾ÁË title²¢ÒƳýÁË legend ¡£

ÏÂÃæÊǽ«Í¼±í´æÎª png ¸ñʽµÄ´úÂ룺

fig = budget_plot.get_figure()

fig.savefig("2014-mn-capital-budget.png")

»ù´¡Í¼±í¿´ÆðÀ´²»´í£¬ÀíÏëÇé¿öÏ£¬ÎÒÏë¶Ô y ÖáÔÙ×öһЩ¸ñʽ»¯£¬µ«ÊÇÕâÑù×öÐèҪʹÓà matplotlib µÄһЩ¹¦ÄÜ¡£ËäÈ»ÏÖÔÚµÄͼ±íÒÑÊÇÍêÃÀ¿ÉÓõĿÉÊÓ»¯Í¼±íÁË£¬µ«Êǽö½öͨ¹ý pandas ÊDz»¿ÉÄÜÍê³É¸ü¶à¶¨ÖƵÄ¡£

Seaborn

Seaborn ÊÇÒ»¸ö»ùÓÚ matplotlib µÄ¿ÉÊÓ»¯¿â¡£ËüÖ¼ÔÚʹĬÈϵÄÊý¾Ý¿ÉÊÓ»¯¸ü¼ÓÔÃÄ¿¡£Ëü»¹Ö¼ÔÚ¼ò»¯¸´ÔÓͼ±íµÄ´´½¨£¬¿ÉÒÔÓë pandas ºÜºÃµØ¼¯³É¡£

±ê×¼µ¼°ü¼°¶ÁÈ¡Êý¾Ý£º

sns.set_style("darkgrid")

bar_plot = sns.barplot(x=budget["detail"],y=budget["amount"],

palette="muted",

x_order=budget["detail"].tolist())

plt.xticks(rotation=90)

plt.show()

ÕýÈçÄãËù¿´µ½µÄ£¬ÎÒ±ØÐÞʹÓà matplotlib Ðýת x ÖáµÄ±êÌâÒÔ±ã¿ÉÒÔÕý³£µØÔĶÁ¡£´ÓÍâ¹ÛÉÏ¿´£¬Í¼±í¿´ÆðÀ´²»´í¡£ÀíÏëÇé¿öÏ£¬ÎÒÏë¸ñʽ»¯ y ÖáÉϵĿ̶È£¬µ«ÎÒ²»ÖªµÀÔÚ²»Ê¹Óà matplotlib ÖÐµÄ plt.yticks µÄÇé¿öÏ£¬ÈçºÎʵÏÖ¸ñʽ»¯¡£

ggplot

ggplot Óë Seaborn ÀàËÆ£¬Ò²ÊÇ»ùÓÚ matplotlib ²¢Ö¼ÔÚÒÔ¼òµ¥µÄ·½Ê½Ìá¸ß matplotlib ¿ÉÊÓ»¯µÄÊÓ¾õ¸ÐȾÁ¦¡£Ëü²»Í¬ÓÚ seaborn ÊÇÒòΪËüÊÇ ggplot2 Ϊ R ÓïÑÔ×¼±¸µÄÒ»¸ö¶Ë¿Ú¡£»ùÓÚÕâ¸öÄ¿±ê£¬Ò»Ð© API µÄ½Ó¿ÚËäÈ»²»ÊÇºÜ pythonic µ«Êǹ¦ÄܺÜÇ¿´ó¡£

¼ÌÐøµ¼°ü²¢¶ÁÈ¡Êý¾Ý£º

import pandas as pd

from ggplot import *

budget = pd.read_csv("mn-budget-detail-2014.csv")

budget = budget.sort('amount',ascending=False)[:10]

ÏÖÔÚÈÃÎÒÃÇͨ¹ýÁ¬½Ó¼¸Ìõ ggplot ÃüÁîÀ´¹¹Ôìͼ±í£º

p = ggplot(budget, aes(x="detail",y="amount")) +

geom_bar(stat="bar", labels=budget["detail"].tolist()) +

ggtitle("MN Capital Budget - 2014") +

xlab("Spending Detail") +

ylab("Amount") + scale_y_continuous(labels='millions') +

theme(axis_text_x=element_text(angle=90))

print p

ÕâËÆºõ¿´ÆðÀ´ÓÐÐ©Ææ¹Ö – ÓÈÆäÊÇʹÓà print p À´ÏÔʾͼ±í¡£µ«ÊÇ£¬ÎÒ·¢ÏÖÕâÑùÏà¶Ô¼òµ¥Ã÷ÁË¡£

ҪŪÇå³þÈçºÎ½«Îı¾Ðýת 90 ¶ÈÒÔ¼°ÈçºÎ½« x ÖáÉϵıêÇ©ÅÅÐò£¬È·ÊµÒª×öЩÉîÈëµÄÍÚ¾ò¡£

ÎÒ·¢ÏÖ×î¿áµÄ¹¦ÄÜÊÇ scale_y_continous£¬ Ëü¿ÉÒÔʹ±êÇ©¸üÃÀ¹Û¡£

Èç¹ûÄãÏ뽫ͼ±í±£´æÎªÍ¼Æ¬£¬Ê¹Óà ggsave¿ÉÒÔºÜÇáËɵذ쵽£º

ggsave(p, "mn-budget-capital-ggplot.png")

ÏÂͼÊÇ×îÖÕµÄͼƬ£¬ÎÒÖªµÀ»ÒÉ«¿ÉÄÜÓеã¶à£¬µ«ÊǺÁ²»·Ñʱ¾Í¿ÉÒÔ¸øËüÌíЩɫ²Ê¡£

Bokeh

Bokeh ²»Í¬ÓÚ֮ǰµÄ3¸ö¿â£¬Ëü²»ÒÀÀµÓÚ matplotlib ²¢ÇÒʵÏÖµÄÊÇÃæÏòÏÖ´úä¯ÀÀÆ÷µÄ¿ÉÊÓ»¯¡£ËüµÄÄ¿±êÊÇʵÏÖ½»»¥Ê½µÄ web ¿ÉÊÓ»¯£¬ËùÒÔÎÒµÄÀý×ӷdz£¼òµ¥¡£

µ¼°ü²¢¶ÁÈëÊý¾Ý£º

import pandas as pd

from bokeh.charts import Bar

budget = pd.read_csv("mn-budget-detail-2014.csv")

budget = budget.sort('amount',ascending=False)[:10]

bokeh ²»Í¬µÄÒ»·½ÃæÊÇÎÒÐèÒªÃ÷È·ÁгöÎÒ»æÍ¼ÐèÒªµÄÖµ¡£

details = budget["detail"].values.tolist()

amount = list(budget["amount"].astype(float).values)

ÏÖÔÚÎÒÃÇ¿ÉÒÔ»æÍ¼ÁË¡£ÏÂÃæµÄ´úÂ뽫»áʵÏÖÔÚä¯ÀÀÆ÷ÖÐչʾ°üº¬Í¼±íµÄ HTML Ò³Ãæ£¬Èç¹ûÏëÓÃ×÷ÆäËûչʾ£¬¿ÉÒÔ±£´æÆä png ¸ñʽµÄ¸±±¾¡£

bar = Bar(amount, details, filename="bar.html")

bar.title("MN Capital Budget - 2014").xlabel("Detail").ylabel("Amount")

bar.show()

ÏÂÃæÊÇ png ¸ñʽµÄͼƬ£º

ÕýÈçÄãËù¿´µ½µÄ£¬Í¼±íÊǷdz£¸É¾»µÄ¡£ÎÒûÓÐÕÒµ½Ò»ÖÖ¸ü¼òµ¥µÄ·½Ê½À´¸ñʽ»¯ y Öá¡£Bokeh Óкܶ๦ÄÜ£¬µ«ÔÚ±¾ÀýÖÐÎÒ²¢Î´ÉîÈë̽Ë÷¡£

Pygal

Pygal ÓÃÓÚ´´½¨ svg ¸ñʽµÄͼ±í£¬Èç¹û°²×°ÁËÕýÈ·µÄÒÀÀµ£¬Ò²¿ÉÒÔ±£´æÎª png ¸ñʽ¡£svg ÎļþÔÚ´´½¨½»»¥Ê½Í¼±íʱ·Ç³£ÓÐÓã¬Í¬Ê±ÎÒÒ²·¢ÏÖ£¬Ê¹Óô˹¤¾ß¿ÉÒԷdz£ÈÝÒ׵ش´½¨¶ÀÌØ¶øÓÖ¼«¾ßÊÓ¾õ¸ÐȾÁ¦µÄͼ±í¡£

µ¼°ü¼°¶ÁÈ¡Êý¾Ý£º

import pandas as pd

import pygal

from pygal.style import LightStyle

budget = pd.read_csv("mn-budget-detail-2014.csv")

budget = budget.sort('amount',ascending=False)[:10]

ÎÒÃÇÐèÒª´´½¨Í¼±íÀàÐͲ¢×öһЩ»ù´¡ÉèÖãº

bar_chart = pygal.Bar(style=LightStyle, width=800, height=600,

legend_at_bottom=True, human_readable=True,

title='MN Capital Budget - 2014')

ÓÐȤµÄÒ»µãÊÇ human_readable £¬Ëü¿ÉÒԺܺõظñʽ»¯Êý¾Ý£¬ËùÒÔ´ó¶àÊýÇé¿öÏ£¬Õâ¸ö¹¦ÄÜ“ºÜ¹ÜÓÔ¡£

ÏÖÔÚÎÒÃÇÐèÒªÏòͼ±íÖÐÌí¼ÓÊý¾Ý£¬ÕâÊÇÓë pandas ¼¯³ÉµØ²»ÊǺܽô´ÕµÄµØ·½£¬µ«ÊǾͱ¾´ÎµÄСÊý¾Ý¼¯À´Ëµ£¬¿ÉÒÔÖ±½ÓÌí¼ÓÊý¾Ý¡£Êý¾ÝÁ¿ºÜ´óʱ£¬ÐÔÄÜ¿ÉÄÜ»áÊÇÒ»¸öÎÊÌâ¡£

for index, row in budget.iterrows():

bar_chart.add(row["detail"], row["amount"])

½ÓÏÂÀ´£¬½«ÎļþäÖȾΪ svg ºÍ png ¸ñʽ£º

bar_chart.render_to_file('budget.svg')

bar_chart.render_to_png('budget.png')

ÎÒ¾õµÃ svg µÄչʾЧ¹ûȷʵºÜºÃ£¬ÎÒºÜϲ»¶¿´ÆðÀ´¶ÀÌØÇÒÉÍÐÄÔÃÄ¿µÄ·ç¸ñ¡£Í¬Ê±ÎÒÒ²·¢ÏÖ£¬ÎÒÃÇ¿ÉÒÔÏà¶ÔÈÝÒ×µØÅªÇå³þʹÓô˹¤¾ßʱ£¬ÄÄЩ¿ÉÒÔʵÏÖ£¬ÄÄЩ²»ÄÜʵÏÖ¡£ÎÒ¹ÄÀø´ó¼ÒÏÂÔØ svg Îļþ£¬²¢ÔÚä¯ÀÀÆ÷ÖиÐÊÜͼ±íµÄ»¥¶¯Ð§¹û¡£

· Pandas ¶ÔÓÚ¼òµ¥µÄͼ±í»æÖÆÊ±·Ç³£·½±ãµÄ£¬µ«ÊÇÄãÐèҪѧϰ matplotlib À´ÊµÏÖ¶¨ÖÆ¡£

· Seaborn ¿ÉÒÔÖ§³ÖһЩ¸ü¸´ÔӵĿÉÊÓ»¯·½·¨£¬µ«ÈÔÐèÒª matplotlib µÄ֪ʶÀ´µ÷Õû¡£ÑÕÉ«·½°¸ÊÇÒ»¸ö²»´íµÄ¹¦ÄÜ¡£

· ggplot ºÜÓÐǰ¾°£¬µ«ËüÈÔÔÚŬÁ¦³É³¤ÖС£

· Èç¹ûÄãÏ뽨Á¢×Ô¼ºµÄ¿ÉÊÓ»¯·þÎñÆ÷£¬bokeh ½«ÊÇÒ»¸öÇ¿´óµÄ¹¤¾ß¡£µ«ÊǶÔÓÚһЩ¼òµ¥µÄ½Å±¾£¬Ê¹Óà bokeh ¾ÍÏñɱ¼¦ÓÃÅ£µ¶Ò»Ñù¡£

· pygal ÔÚ´´½¨»¥¶¯Ê¹ SVG ͼ±íºÍ PNG Îļþ·½ÃæÊǶÀÒ»ÎÞ¶þµÄ¡£Ëü²»Èç»ùÓÚmatplotlib µÄ½â¾ö·½°¸Áé»î¡£

±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍÈ˹¤ÖÇÄÜ+PythonѧԺËùÓУ¬»¶Ó­×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍÈ˹¤ÖÇÄÜ+PythonѧԺ
Ê×·¢£ºhttp://python.itcast.cn/
0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿