今天我们来学习关于“利用matplotlib画散点图的详细操作及代码是什么”的内容,下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧。
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') # 根据电影人数进行排序
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() # 网格线 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()
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()
注意到当数据较为集中的时候,点的颜色较深,如果数据分布较稀疏的时候,点更透明。
由于我一共有五十组数据,也就是有50个点,因此当构建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数组来进行实现:
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()
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()
可以看到横坐标轴发生了变化。
以上就是Python matplotlib实现散点图的绘制的详细内容,更多关于Python matplotlib散点图的资料请关注站长源码网其它相关文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理