Python matplotlib實現(xiàn)散點圖的繪制
一、整理數(shù)據(jù)
import pandas as pd
cnbodf=pd.read_excel('cnboo1.xlsx')
cnbodfsort=cnbodf.sort_values(by=['BO'],ascending=False)
def mkpoints(x,y):
return len(str(x))*(y/25)-3
cnbodfsort['points']=cnbodfsort.apply(lambda x:mkpoints(x.BO,x.PERSONS),axis=1)
cnbodfgb=cnbodfsort.groupby("TYPE").mean(["bo","prices","persons","points"])
cnbodfsort['type1']=cnbodfsort['TYPE'].apply(lambda x:x.split("/")[0])
cnbodfgb=cnbodfsort.groupby(["type1"])["ID","BO","PRICE","PERSONS","points"].mean()
cnbodfgbsort=cnbodfgb.sort_values("BO",ascending=False)
cnbodfsort.sort_values(by='PERSONS') # 根據(jù)電影人數(shù)進行排序

from matplotlib import pyplot as plt
plt.style.use('classic') # 畫板主題風格
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況") # 標題
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE) # 散點圖
plt.grid() # 網(wǎng)格線
plt.show()

二、修改點的樣式
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,c='red',edgecolor='pink',s=100,linewidth=4)
plt.grid()
plt.show()


三、呈現(xiàn)半透明的狀態(tài)
alpha=0.3
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,c='red',edgecolor='black',s=100,linewidth=4,alpha=0.5)
plt.grid()
plt.show()
注意到當數(shù)據(jù)較為集中的時候,點的顏色較深,如果數(shù)據(jù)分布較稀疏的時候,點更透明。

四、點呈現(xiàn)多彩的顏色
由于我一共有五十組數(shù)據(jù),也就是有50個點,因此當構(gòu)建colors的時候必須有五十個。

from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
colors=[1,2,3,4,5,6,7,8,9,10]*5
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,c=colors,edgecolor='black',s=100,linewidth=4,alpha=0.5)
plt.grid()
plt.show()

五、讓點的大小不一
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
colors=[1,2,3,4,5,6,7,8,9,10]*5
sizes=cnbodfsort.points*10
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,c=colors,edgecolor='black',s=sizes,linewidth=4,alpha=0.5)
plt.grid()
plt.show()



也可以通過使用numpy數(shù)組來進行實現(xiàn):
sizes=list(np.random.randint(100,500,size=(50,)))

如果讓點變回同色系,則使:
cmap='summer'
import numpy as np
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
colors=[1,2,3,4,5,6,7,8,9,10]*5
sizes=list(np.random.randint(100,500,size=(50,)))
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,cmap='summer',edgecolor='black',s=sizes,linewidth=4,alpha=0.5)
cbar=plt.colorbar()
cbar.set_label("票房")
plt.xscale('log')
plt.xscale('log')
plt.grid()
plt.show()

import numpy as np
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
colors=[1,2,3,4,5,6,7,8,9,10]*5
sizes=list(np.random.randint(100,500,size=(50,)))
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,cmap='winter',c=cnbodfsort.PERSONS,edgecolor='black',s=sizes,linewidth=4,alpha=0.5)
cbar=plt.colorbar()
cbar.set_label("票房")
plt.xscale('log')
plt.xscale('log')
plt.grid()
plt.show()

六、側(cè)邊呈現(xiàn)顏色卡
cbar=plt.colorbar()
import numpy as np
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
colors=[1,2,3,4,5,6,7,8,9,10]*5
sizes=list(np.random.randint(100,500,size=(50,)))
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,c=colors,edgecolor='black',s=sizes,linewidth=4,alpha=0.5)
cbar=plt.colorbar()
cbar.set_label("票房")
plt.grid()
plt.show()

七、改變集中性
plt.xscale('log')
plt.xscale('log')
import numpy as np
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(9,6))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國票房分布情況")
colors=[1,2,3,4,5,6,7,8,9,10]*5
sizes=list(np.random.randint(100,500,size=(50,)))
plt.scatter(cnbodfsort.PERSONS,cnbodfsort.PRICE,c=colors,edgecolor='black',s=sizes,linewidth=4,alpha=0.5)
cbar=plt.colorbar()
cbar.set_label("票房")
plt.xscale('log')
plt.xscale('log')
plt.grid()
plt.show()
可以看到橫坐標軸發(fā)生了變化。

以上就是Python matplotlib實現(xiàn)散點圖的繪制的詳細內(nèi)容,更多關(guān)于Python matplotlib散點圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pytorch GAN偽造手寫體mnist數(shù)據(jù)集方式
今天小編就為大家分享一篇pytorch GAN偽造手寫體mnist數(shù)據(jù)集方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Python趣味挑戰(zhàn)之實現(xiàn)簡易版音樂播放器
小伙伴們天天學(xué)編程應(yīng)該都學(xué)累了,今天特地給大家整理了這篇文章,讓大家在學(xué)習的時候也收貨快樂,文中有非常詳細的代碼示例,需要的朋友可以參考下2021-05-05
淺談Python采集網(wǎng)頁時正則表達式匹配換行符的問題
今天小編就為大家分享一篇淺談Python采集網(wǎng)頁時正則表達式匹配換行符的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
手把手教你怎么用Python實現(xiàn)zip文件密碼的破解
之前在家里的老電腦中,發(fā)現(xiàn)一個加密zip壓縮包,由于時隔太久忘記密碼了,依稀記得密碼是6位字母加數(shù)字,網(wǎng)上下載了很多破解密碼的軟件都沒有效果,于是想到自己用Python寫一個暴力破解密碼的腳本,需要的朋友可以參考下2021-05-05
keras中epoch,batch,loss,val_loss用法說明
這篇文章主要介紹了keras中epoch,batch,loss,val_loss用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

