python怎么用matplotlib_python如何使用Matplotlib的作图

关注公众号:Python爬虫数据分析挖掘,免费获取更多开源项目源码

640?wx_fmt=jpeg

Matplotlib官网 如果想了解更多可查看官网。

importnumpy as npimportmatplotlib.pyplot as plt%matplotlib inline #写了这个就可以不用写plt.show()

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签

plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

X= np.linspace(0, 2*np.pi,100)#均匀的划分数据

Y =np.sin(X)

Y1=np.cos(X)

plt.title("Hello World!!")

plt.plot(X,Y)

plt.plot(X,Y1)

1252638-20200904092326264-261591750.png

X = np.linspace(0, 2*np.pi,100)

Y=np.sin(X)

Y1=np.cos(X)

plt.subplot(211) #等价于 subplot(2,1,1) #一个图版画两个图

plt.plot(X,Y)

plt.subplot(212)

plt.plot(X,Y1,color= 'r')

1252638-20200904092410419-26498098.png

柱状图

data = [5,25,50,20]

plt.bar(range(len(data)),data)

1252638-20200904092448563-867022708.png

水平绘制柱状图

data = [5,25,50,20]

plt.barh(range(len(data)),data)

1252638-20200904092525373-153772054.png

多个柱状图

data = [[5,25,50,20],

[4,23,51,17],

[6,22,52,19]]

X= np.arange(4)

plt.bar(X+ 0.00, data[0], color = 'b', width = 0.25,label = "A")

plt.bar(X+ 0.25, data[1], color = 'g', width = 0.25,label = "B")

plt.bar(X+ 0.50, data[2], color = 'r', width = 0.25,label = "C")#显示上面设置的 lable

plt.legend()

1252638-20200904093450341-1932384830.png

叠加型柱状图

data = [[5,25,50,20],

[4,23,51,17],

[6,22,52,19]]

X= np.arange(4)

plt.bar(X, data[0], color= 'b', width = 0.25)

plt.bar(X, data[1], color = 'g', width = 0.25,bottom =data[0])

plt.bar(X, data[2], color = 'r', width = 0.25,bottom = np.array(data[0]) + np.array(data[1]))

plt.show()

1252638-20200904093519023-2090603788.png

散点图

N = 50x=np.random.rand(N)

y=np.random.rand(N)

plt.scatter(x, y)

1252638-20200904093540996-428351650.png

气泡图

N = 50x=np.random.rand(N)

y=np.random.rand(N)

colors= np.random.randn(N) #颜色可以用数值表示

area = np.pi * (15 * np.random.rand(N))**2 #调整大小

plt.scatter(x, y, c=colors, alpha=0.5, s = area)

1252638-20200904093558126-554053711.png

N = 50x=np.random.rand(N)

y=np.random.rand(N)

colors= np.random.randint(0,2,size =50)

plt.scatter(x, y, c=colors, alpha=0.5,s = area)

1252638-20200904093611375-905668334.png

直方图

a = np.random.rand(100)

plt.hist(a,bins= 20)

plt.ylim(0,15)

1252638-20200904093629917-1331237888.png

a = np.random.randn(10000)

plt.hist(a,bins=50)

plt.title("标准正太分布")

1252638-20200904093643384-1982189404.png

箱线图

x = np.random.randint(20,100,size = (30,3))

plt.boxplot(x)

plt.ylim(0,120)#在x轴的什么位置填一个 label,我们这里制定在 1,2,3 位置,写上 A,B,C

plt.xticks([1,2,3],['A','B','C'])

plt.hlines(y= np.median(x,axis = 0)[0] ,xmin =0,xmax=3)

1252638-20200904093709134-1669596974.png

添加文字描述

#设置画布颜色为 blue

fig, ax = plt.subplots(facecolor='blue')#y 轴数据

data = [[5,25,50,20],

[4,23,51,17],

[6,22,52,19]]

X= np.arange(4)

plt.bar(X+0.00, data[0], color = 'darkorange', width = 0.25,label = 'A')

plt.bar(X+0.25, data[1], color = 'steelblue', width = 0.25,label="B")

plt.bar(X+0.50, data[2], color = 'violet', width = 0.25,label = 'C')

ax.set_title("Figure 2")

plt.legend()#添加文字描述 方法一

W = [0.00,0.25,0.50]for i in range(3):for a,b in zip(X+W[i],data[i]):

plt.text(a,b,"%.0f"% b,ha="center",va= "bottom")

plt.xlabel("Group")

plt.ylabel("Num")

plt.text(0.0,48,"TEXT")

1252638-20200904093730615-58846644.png

添加文字描述 方法二

X = np.linspace(0, 2*np.pi,100)#均匀的划分数据

Y =np.sin(X)

Y1=np.cos(X)

plt.plot(X,Y)

plt.plot(X,Y1)

plt.annotate('Points',

xy=(1, np.sin(1)),

xytext=(2, 0.5), fontsize=16,

arrowprops=dict(arrowstyle="->"))

plt.title("这是一副测试图!")

1252638-20200904093749843-1589124869.png

多个图形描绘 subplots

%pylab inline

pylab.rcParams['figure.figsize'] = (10, 6) #调整图片大小

#np.random.seed(19680801)

n_bins= 10x= np.random.randn(1000, 3)

fig, axes= plt.subplots(nrows=2, ncols=2)

ax0, ax1, ax2, ax3=axes.flatten()

colors= ['red', 'tan', 'lime']

ax0.hist(x, n_bins, normed=1, histtype='bar', color=colors, label=colors)

ax0.legend(prop={'size': 10})

ax0.set_title('bars with legend')

ax1.hist(x, n_bins, normed=1, histtype='bar', stacked=True)

ax1.set_title('stacked bar')

ax2.hist(x, n_bins, histtype='step', stacked=True, fill=False)

ax2.set_title('stack step (unfilled)')#Make a multiple-histogram of data-sets with different length.

x_multi = [np.random.randn(n) for n in [10000, 5000, 2000]]

ax3.hist(x_multi, n_bins, histtype='bar')

ax3.set_title('different sample sizes')

1252638-20200904093811792-1274498923.png

使用Pandas 绘图

importpandas as pd

df= pd.DataFrame(np.random.rand(50, 2), columns=['a', 'b'])#散点图

df.plot.scatter(x='a', y='b')

1252638-20200904093831850-1618516615.png

df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])#绘制柱状图

df.plot.bar()

1252638-20200904093845350-683960661.png

#堆积的柱状图

df.plot.bar(stacked=True)

1252638-20200904093938495-372317837.png

#水平的柱状图

df.plot.barh(stacked=True)

1252638-20200904094001644-415586720.png

df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])#直方图

df.plot.hist(bins=20)

1252638-20200904094015115-1293883085.png

#箱线图

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

df.plot.box()

1252638-20200904094031256-1202596377.png

Pythonmatplotlib是一个用于数据可视化的库,用于创建各种类型的图表和绘图。使用matplotlib库,可以通过设置横纵坐标轴数值以百分比(%)显示来自定义图表的样式。为了在图表中显示中文字符,可以使用以下代码: ``` import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文 matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号 ``` 接下来,可以使用numpy生成一些示例数据,并使用matplotlib绘制图表。例如,以下代码生成了一个函数曲线图: ``` import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi/2, np.pi/2, 500) y = (0.64*np.sqrt(abs(x))-0.8*1.2**abs(x)*np.cos(200*x))*np.sqrt(np.cos(x)) plt.figure(figsize=(10,10),dpi=50) plt.plot(x,y,color='r') plt.grid() plt.show() ``` 以上代码将在一个大小为10x10,分辨率为50的画布上绘制出函数曲线图,并显示在屏幕上。 另外,matplotlib还提供了许多其他功能,比如绘制柱状图、散点图、饼图等等。下面是一个简单的例子,展示如何绘制一个基本的折线图: ``` import matplotlib.pyplot as plt plt.figure() # 创建画布 x = range(6) y = range(4,10) plt.plot(x,y) # 绘制图像 plt.show() # 显示图像 ``` 这段代码将创建一个画布,并在其中绘制了一个折线图,然后将图像显示在屏幕上。 总结:Pythonmatplotlib库提供了丰富的功能,可以用于创建各种类型的图表和绘图。从简单的折线图到复杂的曲线图,都可以使用matplotlib来实现。通过设置横纵坐标轴数值以百分比(%)显示,以及其他自定义的样式设置,可以让图表更加具有可读性和美观性。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值