Python可视化分析,pandas作图
#pandas中的绘图函数
import pandas as pd
import os
os.chdir(r'E:\可视化分析\Excel1\Python数据可视化2') # 定义数据的目录
df=pd.read_csv('data.csv',index_col='年份') # 读取数据,并将年份作为index列
df.head()
人均GDP(元) | 啤酒产量(万千升) | 居民消费价格指数(上面=100) | |
---|---|---|---|
年份 | |||
2000 | 7857.7 | 2231.3 | 100.4 |
2001 | 8621.7 | 2288.9 | 100.7 |
2002 | 9398.1 | 2402.7 | 99.2 |
2003 | 10542.0 | 2540.5 | 101.2 |
2004 | 12335.6 | 2948.6 | 103.9 |
x=df.index.values # 将值定义为x
y=df['人均GDP(元)'].values # 将值定义为y# 设置字体,避免乱码
from pylab import mpl
mpl.rcParams['font.sans-serif']=['FangSong']
import matplotlib.pyplot as plt
fig,ax=plt.subplots()
ax.plot(x,y,'r--o')
ax.set(title='人均GDP走势图',xlabel='年份',ylabel = '人均GDP')
plt.show()
# 另一种画图方式
fig = plt.figure()
ax=fig.add_subplot(111)ax.plot(x,y,'r--o')
ax.set(title='人均GDP走势图',xlabel='年份',ylabel='人均GDP')
plt.show()
#pandas中的绘图函数
df['人均GDP(元)'].plot(color='r')
plt.show()
df['人均GDP(元)'].plot(kind='bar',color='blue')
plt.show()
df.plot()
plt.show()
df.plot(kind='bar')
plt.show()
# 堆积柱形图
df.plot(kind='bar',stacked =True)
plt.show()
# 常用图表绘制
# 散点图
import numpy as np
data =np.random.randint(0,100,size = [40,40]) # size指大小
# 二维散点图
x,y = data[0],data[1]
ax = plt.subplot(111)
ax.scatter(x[:10],y[:10],c='r') # 定义索引0~10为红色
ax.scatter(x[10:20],y[10:20],c='b') #定义索引10~20为红色
ax.set_xlabel('X')
ax.set_ylabel('Y') # 定义y轴
plt.show()
# 三维散点图
from mpl_toolkits.mplot3d import Axes3Dx,y,z =data[0],data[1],data[2]
ax = plt.subplot(111,projection ='3d')
ax.scatter(x[:10],y[:10],z[:10],c = 'b')
ax.scatter(x[10:20],y[10:20],z[10:20],c= 'r')
ax.scatter(x[20:30],y[20:30],z[20:30],c= 'g')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
# 3、绘制词云图及jieba分词
from wordcloud import WordCloud
import jieba
print(list(jieba.cut('我是一个超级棒的yin')))
['我', '是', '一个', '超级', '棒', '的', 'yin']
# 将文本文件读取进来
with open('paragraph.txt',encoding = 'utf-8') as file:
text =file.read()wordlist_jieba = jieba.cut(text)
wordlist= '/'.join(wordlist_jieba)
print(wordlist)
/自然语言/处理/是/计算机科学/领域/与/人工智能/领域/中/的/一个/重要/方向/。/它/研究/能/实现/人/与/计算机/之间/用/自然语言/进行/有效/通信/的/各种/理论/和/方法/。/自然语言/处理/是/一门/融/语言学/、/计算机科学/、/数学/于/一体/的/科学/。/因此/,/这一/领域/的/研究/将/涉及/自然语言/,/即/人们/日常/使用/的/语言/,/所以/它/与/语言学/的/研究/有着/密切/的/联系/,/但/又/有/重要/的/区别/。/自然语言/处理/并/不是/一般/地/研究/自然语言/,/而/在于/研制/能/有效/地/实现/自然语言/通信/的/计算机系统/,/特别/是/其中/的/软件系统/。/因而/它/是/计算机科学/的/一部分/。
#绘制词云图
wordcloud = WordCloud(font_path = 'C:/Windows/Fonts/simfang.ttf').generate(wordlist)
image = wordcloud.to_image()
image.show()
#散点图矩阵
from sklearn.datasets import load_iris
iris_dataset=load_iris()#绘制散点图矩阵
import pandas as pdiris_df=pd.DataFrame(iris_dataset['data'],columns=iris_dataset.feature_names)
iris_df.head()
sepal length (cm) | sepal width (cm) | petal length (cm) | petal width (cm) | |
---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 |
1 | 4.9 | 3.0 | 1.4 | 0.2 |
2 | 4.7 | 3.2 | 1.3 | 0.2 |
3 | 4.6 | 3.1 | 1.5 | 0.2 |
4 | 5.0 | 3.6 | 1.4 |
0.2
|
grr=pd.plotting.scatter_matrix(iris_df,c=iris_dataset['target'],figsize=(15,15),marker='o',alpha=0.5)
#逻辑回归中的sigmoid函数
#matplotlib,numpydef sigmoid(x):
return 1/(1+np.exp(-x))from pylab import mpl
mpl.rcParams['axes.unicode_minus']=False
x=np.arange(-5,6,1)
fig,ax=plt.subplots()
ax.plot(x,sigmoid(x),'r')