| 
                            
                                  一、整理数据
	
		
			| 1 2 3 | import pandas as pd cnbodf=pd.read_excel('cnboo1.xlsx') cnbodfsort=cnbodf.sort_values(by=['BO'],ascending=False) |  
	
		
			| 1 2 3 4 | def mkpoints(x,y):     return len(str(x))*(y/25)-3   cnbodfsort['points']=cnbodfsort.apply(lambda x:mkpoints(x.BO,x.PERSONS),axis=1) |  
	
		
			| 1 2 3 4 | 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) |  
	
		
			| 1 | cnbodfsort.sort_values(by='PERSONS') # 根据电影人数进行排序 |  
 
	
		
			| 1 2 3 4 5 6 7 8 9 10 | 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() |  
 二、修改点的样式
	
		
			| 1 2 3 4 5 6 7 8 9 10 | 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() |  
 
 三、呈现半透明的状态
	
		
			| 1 2 3 4 5 6 7 8 9 10 | 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的时候必须有五十个。 
 
	
		
			| 1 2 3 4 5 6 7 8 9 10 11 | 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() |  
 五、让点的大小不一
	
		
			| 1 2 3 4 5 6 7 8 9 10 11 12 | 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数组来进行实现: 
	
		
			| 1 | sizes=list(np.random.randint(100,500,size=(50,))) |  
 如果让点变回同色系,则使: 
	
		
			| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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() |  
 
	
		
			| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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() |  
 六、侧边呈现颜色卡
	
		
			| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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() |  
 七、改变集中性
	
		
			| 1 2 | plt.xscale('log') plt.xscale('log') |  
	
		
			| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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() |  可以看到横坐标轴发生了变化。 
 
 |