python使用Pandas,数据可视化
2021/4/9 20:27:48
本文主要是介绍python使用Pandas,数据可视化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
-
- pandas数据可视化
-
- 线形图
- 条形图
-
- 堆积条形图
- 水平条形图
- 直方图
- 箱型图
- 区域图
- 散点图
- 饼状图
- plotly数据可视化
-
- 激活backend:
- Plotly backend简介
- if Jupyter
- 数据集选取
- 开始绘图
-
- 散点图
- 条形辉度图
- 散点分类图
- 资料推荐
pandas数据可视化
其实,pandas作图是个什么效果大家心里应该有数,不然也不会有那么多其他的库来作图,或者说,pandas本身是一个做数据分析的库,作图的话,可能并不是它的本职工作。
但是呢,既然人家有,那我就放一下。
不急,文章后面会有比较好的pandas可视化工具。
(如果性子急的朋友可以从目录直接跳转到下面的第二个大板块儿)
线形图
import pandas as pd import numpy as np s = Series( np. random. randn( 10). cumsum(), index= np. arange( 0, 100, 10)) s. plot()
- 1
- 2
- 3
- 4
- 5
条形图
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d') df.plot.bar()
- 1
- 2
堆积条形图
传递stacked = True :
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d') df.plot.bar(stacked=True)
- 1
- 2
水平条形图
要获得水平条形图,请使用 barh 方法:
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d') df.plot.barh(stacked=True)
- 1
- 2
- 3
直方图
df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c': np.random.randn(1000) - 1}, columns=['a', 'b', 'c']) df.plot.hist(bins=20)
- 1
- 2
- 3
- 4
箱型图
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E']) df.plot.box()
- 1
- 2
区域图
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) df.plot.area()
- 1
- 2
散点图
df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd']) df.plot.scatter(x='a', y='b')
- 1
- 2
饼状图
df = pd.DataFrame(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], columns=['x']) df.plot.pie(subplots=True)
- 1
- 2
plotly数据可视化
pandas现在可以使用Plotly、Bokeh作为可视化的backend,直接实现交互性操作,无需再单独使用可视化包了。
激活backend:
pd.options.plotting.backend = 'plotly'
- 1
可以填在上面的有:
Plotly Holoviews Matplotlib Pandas_bokeh Hyplot
- 1
- 2
- 3
- 4
- 5
Plotly backend简介
Plotly是基于Javascript版本的库写出来的,因此生成的Web可视化图表,可以显示为HTML文件或嵌入基于Python的Web应用程序中。
使用Plotly可以画出很多媲美Tableau的高质量图:
此前一直是苦于pyecharm的模板不够多,前端不熟的小伙伴,这可是一个好东西哦!!!
if Jupyter
如果是在Jupyterlab中使用Plotly,那还需要执行几个额外的安装步骤来显示可视化效果。
首先,安装IPywidgets。
pip install jupyterlab "ipywidgets>=7.5"
- 1
然后运行此命令以安装Plotly扩展。
jupyter labextension install jupyterlab-plotly@4.8.1
- 1
好,我用的是pyechart
数据集选取
数据集来源
这个数据也是Scikit-learn中的样本数据,所以也可以使用以下代码将其直接导入。
import pandas as pd import numpy as np from sklearn.datasets import fetch_openml pd.options.plotting.backend = 'plotly' X,y = fetch_openml("wine", version=1, as_frame=True, return_X_y=True) data = pd.concat([X,y], axis=1) print(data.head().T)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
0 1 2 3 4 Alcohol 14.23 13.2 13.16 14.37 13.24 Malic_acid 1.71 1.78 2.36 1.95 2.59 Ash 2.43 2.14 2.67 2.5 2.87 Alcalinity_of_ash 15.6 11.2 18.6 16.8 21.0 Magnesium 127.0 100.0 101.0 113.0 118.0 Total_phenols 2.8 2.65 2.8 3.85 2.8 Flavanoids 3.06 2.76 3.24 3.49 2.69 Nonflavanoid_phenols 0.28 0.26 0.3 0.24 0.39 Proanthocyanins 2.29 1.28 2.81 2.18 1.82 Color_intensity 5.64 4.38 5.68 7.8 4.32 Hue 1.04 1.05 1.03 0.86 1.04 OD280%2FOD315_of_diluted_wines 3.92 3.4 3.17 3.45 2.93 Proline 1065.0 1050.0 1185.0 1480.0 735.0 class 1 1 1 1 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
该数据集是葡萄酒相关的,包含葡萄酒类型的许多功能和相应的标签。
开始绘图
散点图
绘图方式与正常使用Pandas内置的绘图操作几乎相同,只是现在以丰富的Plotly显示可视化效果。
fig = data[['Alcohol', 'Proline']].plot.scatter(y='Alcohol', x='Proline') fig.show()
- 1
- 2
放大缩小,矢量图,你懂得。
条形辉度图
我们可以结合Pandas的groupby函数创建一个条形图,总结各类之间Hue的均值差异。
fig = data[['Hue','class']].groupby(['class']).mean().plot.bar()
- 1
散点分类图
将class添加到我们刚才创建的散点图中。通过Plotly可以轻松地为每个类应用不同的颜色,以便直观地看到分类。
fig = data[['Hue', 'Proline', 'class']].plot.scatter(x='Hue', y='Proline', color='class', title='Proline and Hue by wine class')
- 1
资料推荐
这里示例就放这些,比较简单一些。
这里不建议大家去看各种网文,质量都参差不齐的,直接去看官方文档。
Python Figure Reference: Single-Page
Plotly Python Open Source Graphing Library Fundamentals
推一篇还不错的博文:可视化神器Plotly(5)—参数详解
这篇关于python使用Pandas,数据可视化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程