Python 学习8-数据可视化1

一、线形图

plot

1.单个线形图

import matplotlib.pyplot as plt #导入matplotlib库
import numpy as np #导入numpy库
x=np.arange(1,31,4)
y=x**3
print(x) #[ 1  5  9 13 17 21 25 29]
print(y) #[    1   125   729  2197  4913  9261 15625 24389]
plt.plot(x,y,'b-*',label='x**3')
  #这个b是把图表的线变成蓝色,两个横线是变成虚线,一个横线是直线,
  # *是用来标记取得点的,
plt.legend(loc='best') #loc就是图例项的位置,best为最合适的位置
plt.title('my first one') #给图表加标题
plt.xlabel('X') #给图表加横坐标,也可以用中文,但需要设置格式,否则会乱码
plt.ylabel('Y') #给图表加纵坐标,也可以用中文,但需要设置格式,否则会乱码
plt.show()

在这里插入图片描述
也可以用创建单个线性图的方式去创建多条线在一个图中,但需要一个个设置条件,比较复杂

x=np.arange(1,31,4)
y=x**3
print(x)
print(y)
plt.plot(x,y,'b-*',label='x**3')
plt.legend(loc='best')
y2=x**3.2
plt.plot(x,y2,'r-o',label='x**3.2')
plt.legend(loc='best') 
plt.title('my first one') 
plt.xlabel('X') 
plt.ylabel('Y') 
plt.show()

在这里插入图片描述
2. 多个线形图
subplots为创建一个组,一起编辑,更为方便
线 不重叠

 fig,ax=plt.subplots(2,2)
ax[0,1].plot(x,y,'b--*',label='x**3')
ax[0,0].plot(x,y2,'r-o',label='x**3.2')
plt.show()

在这里插入图片描述

线 重叠

fig,bx=plt.subplots()
bx.plot(x,y,'b--*',label='x**3')
bx.plot(x,y2,'r-o',label='x**3.2')
bx.set(title='my first one',xlabel='X',ylabel='Y')
bx.legend(loc='upper center') 
plt.show()

在这里插入图片描述
3.保存图片
fig.savefig('myfig.png)
保存在当前文件夹下

4.读取外部数据

pd.read()

import pandas as pd 
df=pd.read_csv(r'C:\Users\18841430581\PycharmProjects\python练习\python练习.csv',index_col='月份')  #也可以去掉r,把\改成/即可
print(df.head())
 #        	金额
	月份        
	1   156456
	2   115349
	3   465846
	4   448215
	5   351568
m=df.index.values
n=df['金额'].values
fig,cx=plt.subplots()
plt.plot(m,n,'y-*',label='数据')

  #设置文字格式
from pylab import mpl
mpl.rcParams['font.sans-serif']=['FangSong'] #设置文字默认格式

cx.set(title='月收入',xlabel='月份',ylabel='金额'#标题为中文时,会乱码,需要设置文字格式
cx.legend(loc='best')
plt.show()

在这里插入图片描述

二、饼图

pie

fig,dx=plt.subplots()
dx.pie(m[:4],lables=n[:4],explode=[0,0.03,0.06,0.09]
  # m[:4]是只绘制前4个数据的饼图,如果要全部绘制,把方括号去了就可以,labels
  #同上也是写出各个项的名称,expolde是给出各个部分之间的间隔,不设置就是
  #贴着绘制
plt.show()

在这里插入图片描述

三、词云图

绘制词云图要先获取数据

with open('python练习2.csv') as file:
	words=file.read() #必须缩近
print(words)
  # 666  阿卡丽  皎月  刀妹  卡萨丁  飞机  兰博  妖姬  沙皇  塞拉斯  鳄鱼 
  #盲僧  发条  辛德拉  机器人  萨米拉  卢锡安  小炮  EZ
from wordcloud import WordCloud
wordcloud=WordCloud(fonts_path='C:/Windows/Fonts/simfang.ttf',
								backgroud_color='yellow',width=600,
								height=300,max_words=20).generate(words)
 #要给出文字的路径,要不就乱码无法识别文字,backgroud及后边的是相关参数,
 #分别为背景色、宽度、高度、最大单词数,这些可以设置也可以不设置
 image=wordcloud.to_image()
 image.show() #展示图片  

在这里插入图片描述

当给定背景图时

from PIL import Image
images=Image.open('背景图.jpg')
maskImages=np.array(images)
wordcloud=WordCloud(fonts_path='C:/Windows/Fonts/simfang.ttf',
								backgroud_color='yellow',width=600,
								height=300,max_words=20,
								mask=maskImages).generate(words)
image=wordcloud.to_image()
image.show()

在这里插入图片描述
利用jieba分词来绘制词云图

from wordcloud import WordCloud
import jieba
print(list(jieba.cut(欢迎来到英雄联盟!))) 
  #['欢迎', '来到', '英雄', '联盟', '!']
with open('练习.txt',encoding='utf-8') as file: #获取数据
	text=file.read() #读取txt文件
print(text)
 奉均衡之命。毫无疑问。绝不手软。标记已做好。哼,又是一个不自量力的。我强调最后
 一遍,您一直念叨的经文,我这个忍镰大师根本听不懂。菜鸟真多 匹配系统找得到真正
 的平衡么?我随影而来,随影而去。动作要轻。保持警惕。不要错失良机。均衡,存乎万
 物之间。
wordlist_jieba=jieba.cut(text)
wordlist='/'.join(wordlist_jieba) 
 # '/'.join 就是把括号中的内容转换成字符串
print(wordlist) 
#奉/均衡/之命/。/毫无疑问/。/绝不/手软/。/标记/已/做好/。/哼/,/又/是/一个/不
自量力////强调/最后/一遍///一直/念叨//经文///这个/忍镰/大师/
根本/听不懂//菜鸟/// /匹配/系统//得到/真正//平衡////随影////随影////动作/要轻//保持警惕//不要/错失良机//均衡//存乎/万
物/之间/。

wordcloud=WordCloud(font_path='C:/Windows/Fonts/simfang.ttf').generate(wordlist)
image2=wordcloud.to_image()
image2.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值