<p><a href="http://www.juzicode.com/archives/3112">原文链接:http://www.juzicode.com/archives/3112</a></p>
<p>pandas为我们提供了容易上手使用的数据结构和数据分析工具,它的Series和DataFrame数据类型都有一个plot()方法,可以用于绘制常用图形。</p>
<p> </p>
<h2>1、线型图、基本绘图方法</h2>
<p>构造Series时,传入的第1个位置参数对应坐标y的值,index参数对应坐标x的值,下面这个例子是一个正弦波曲线,x的取值从-2.0到2.0,间隔0.1;用pd.Series()构造了一个实例pdseries,使用pdseries.plot()方法可以绘制出默认kind=’line’形式的图形:</p>
<pre class="blockcode"><code>#juzicode.com
#vx:桔子code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(-2.0, 2.0, 0.01)
s = np.sin(2 * np.pi * t)
pdseries = pd.Series(s, index=t)
print(pdseries)
pdseries.plot()
plt.show()</code></pre>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-de9b5ddd3647ad751c719a67b84a6363.png"></p>
<p>和matplotlib一样,如果要正常显示中文,需要使用plt.rc()进行相应的设置,这里可以看到详细的设置方法:<a href="http://www.juzicode.com/archives/2421">Python数据可视化~matplot默认配置修改(可解决中文、负号等显示问题)http://www.juzicode.com/archives/2421</a></p>
<pre class="blockcode"><code>#juzicode.com
#vx:桔子code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rc('font',family='Youyuan',size='11') #和matplotlib一样指明字体
plt.rc('axes',unicode_minus='False')
t = np.arange(-2.0, 2.0, 0.01)
s = np.sin(2 * np.pi * t)
pdseries = pd.Series(s, index=t)
print(pdseries)
plt.title('sin(x) by桔子code') #设置中文标题
pdseries.plot()
plt.show()</code></pre>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-0b3ba82fa554f9f1295537fb1d0ede51.png"></p>
<p>更进一步的,可以参照pyplot.plot()方法设置曲线的类型、颜色等,可以参考这里:<a href="http://www.juzicode.com/archives/2455">数据可视化~matplotlib基本绘图方法http://www.juzicode.com/archives/2455</a></p>
<pre class="blockcode"><code>#juzicode.com
#vx:桔子code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rc('font',family='Youyuan',size='11') #和matplotlib一样指明字体
plt.rc('axes',unicode_minus='False')
t = np.arange(-2.0, 2.0, 0.01)
s = np.sin(2 * np.pi * t)
pdseries = pd.Series(s, index=t)
print(pdseries)
plt.title('sin(x) by桔子code') #设置中文标题
pdseries.plot(style='--g',grid=True,alpha=0.6,rot=30)#绿色虚线,显示grid,x轴旋转30度
plt.show()</code></pre>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-f03aa505c17d5828e04e6faa6bb3f45e.png"></p>
<p> </p>
<h2>2、柱状图</h2>
<p>使用plot(kind=’bar’)或者plot.bar()绘制柱状图,使用下面2种方法效果是一样的:</p>
<pre class="blockcode"><code>pdseries.plot(kind='bar', align='center',alpha=0.6,rot=50)#入参kind='bar'
pdseries.plot.bar(align='center',alpha=0.6,rot=50)</code></pre>
<p>完整的例子:</p>
<pre class="blockcode"><code>#juzicode.com
#vx:桔子code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rc('font',family='Youyuan',size='11') #和matplotlib一样指明字体
plt.rc('axes',unicode_minus='False')
fruit = ('桔子', '橙子', '西瓜', '苹果', '香蕉', '西红柿')
weight = (100,135,50,83,92,66)
pdseries = pd.Series(weight, index=fruit)
print(pdseries)
plt.title('柱状图 by桔子code') #设置中文标题
pdseries.plot(kind='bar', align='center',alpha=0.6,rot=50)
#pdseries.plot.bar(align='center',alpha=0.6,rot=50)
plt.show()</code></pre>
<p> </p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-c799980c4bbb9600bd4da3ab25355a5b.png"></p>
<p> </p>
<h2>3、水平柱状图</h2>
<p>使用plot(kind=’barh’)或者plot.barh()绘制水平柱状图。rot参数设置x标签的旋转角度,alpha设置透明度,align设置对齐位置。</p>
<pre class="blockcode"><code>#juzicode.com
#vx:桔子code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rc('font',family='Youyuan',size='11') #和matplotlib一样指明字体
plt.rc('axes',unicode_minus='False')
fruit = ('桔子', '橙子', '西瓜', '苹果', '香蕉', '西红柿')
weight = (100,135,50,83,92,66)
pdseries = pd.Series(weight, index=fruit)
print(pdseries)
plt.title('柱状图 by桔子code') #设置中文标题
pdseries.plot(kind='barh', align='center',alpha=0.6,rot=0)
#pdseries. |
|