利用matplotlib和pandas绘制有柱状图、折线图和饼图构成的组合图import pandas as pdimport matplotlib.pyplot as plt# 创建数据data = {'apple': [3, 2, 4, 5], 'orange': [1, 5, 2, 6], 'banana': [2, 3, 1, 4]}df = pd.DataFrame(data, index=['Jan', 'Feb', 'Mar', 'Apr'])# 创建子图fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))# 绘制柱状图df.plot(kind='bar', ax=axs[0])axs[0].set_title('Fruit sales')# 绘制折线图df.plot(kind='line', ax=axs[1])axs[1].set_title('Fruit sales')# 绘制饼图plt.figure(figsize=(5,5))df.sum().plot(kind='pie', autopct='%1.1f%%')plt.title('Fruit sales')# 显示图形plt.show(),data = {'w':[126743, 127627, 128453, 129227, 129988, 130756, 131448, 132129, 132802, 133450, 134091, 134735, 135404, 136072, 136782, 137462, 138271, 139008, 139538, 140005], 'a':[140005, 23493, 98914, 17599], 'b':[139538, 23523, 99357, 16658]} df = pd.DataFrame(data, index=['w', 'a', 'b'])值的长度与索引长度不匹配怎么改
时间: 2023-10-23 13:31:03 浏览: 285
如果值的长度与索引长度不匹配,可以在DataFrame中使用字典时,将值的长度与索引长度保持一致。如果数据不足,可以使用NaN来填充缺失的数据。例如,可以将上面的数据中'a'和'b'的值的长度与'w'保持一致,使用NaN填充缺失的数据,如下所示:
data = {'w':[126743, 127627, 128453, 129227, 129988, 130756, 131448, 132129, 132802, 133450, 134091, 134735, 135404, 136072, 136782, 137462, 138271, 139008, 139538, 140005], 'a':[140005, 23493, 98914, 17599, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN], 'b':[139538, 23523, 99357, 16658, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}
df = pd.DataFrame(data, index=['w', 'a', 'b'])
相关问题
利用matplotlib和pandas绘制有柱状图、折线图和饼图构成的组合图
好的,以下是一个简单的例子,展示如何利用matplotlib和pandas绘制有柱状图、折线图和饼图构成的组合图:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
data = {'apple': [3, 2, 4, 5], 'orange': [1, 5, 2, 6], 'banana': [2, 3, 1, 4]}
df = pd.DataFrame(data, index=['Jan', 'Feb', 'Mar', 'Apr'])
# 创建子图
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
# 绘制柱状图
df.plot(kind='bar', ax=axs[0])
axs[0].set_title('Fruit sales')
# 绘制折线图
df.plot(kind='line', ax=axs[1])
axs[1].set_title('Fruit sales')
# 绘制饼图
plt.figure(figsize=(5,5))
df.sum().plot(kind='pie', autopct='%1.1f%%')
plt.title('Fruit sales')
# 显示图形
plt.show()
```
在这个例子中,我们创建了一个包含水果销售数据的DataFrame对象,并利用matplotlib的子图功能,在一个Figure对象中绘制了柱状图、折线图和饼图。其中,柱状图和折线图绘制在一个子图中,饼图绘制在另一个子图中。最后,我们调用show()函数显示图形。
需要注意的是,这只是一个简单的例子,实际的数据可能更加复杂,需要更多的数据处理和绘图技巧。但是,这个例子可以作为一个起点,帮助你开始利用matplotlib和pandas绘制组合图。
分析下列代码:import pandas as pd import matplotlib.pyplot as plt data = pd.read_excel("E:\\爬取\\爬取.xls") year_count = data.groupby(by="年份")["年份"].count() data['年份'] = pd.to_numeric(data['年份'], errors='coerce') plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams['axes.unicode_minus'] = False plt.plot(year_count.index, year_count.values) plt.title("电影年份发展折线图") plt.xlabel("年份") plt.ylabel("数量") plt.show() import pandas as pd import matplotlib.pyplot as plt data = pd.read_excel("E:\\爬取\\爬取.xls") plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams['axes.unicode_minus'] = False year_count = data['国家'].value_counts() plt.bar(year_count.index, year_count.values) plt.title("各个国家电影数量") plt.xlabel("国家") plt.ylabel("电影数量") plt.show() import pandas as pd import matplotlib.pyplot as plt data = pd.read_excel("E:\\爬取\\爬取.xls") plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams['axes.unicode_minus'] = False type_count = data["类型"].value_counts() plt.pie(type_count,labels=type_count.index,pctdistance=0.8,autopct='%1.1f%%',explode=[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.01]) plt.figure(figsize=(20,6.5)) plt.title("电影主要类型分布图") plt.show() import pandas as pd import matplotlib.pyplot as plt data = pd.read_excel("E:\\爬取\\爬取.xls") scores = data["排名"].values votes = data["评价人数"].values plt.rcParams["font.sans-serif"] = ["SimHei"] plt.scatter(scores, votes) plt.title("排名与评价人数散点图") plt.xlabel("排名") plt.ylabel("评价人数") plt.show()
这段代码主要是用来对爬取到的电影数据进行数据可视化的处理。在代码中使用了 pandas 库对 Excel 数据进行读取和处理,使用了 matplotlib 库来绘制各种图表。
第一个代码块绘制了电影年份的发展折线图,其中先对年份进行了分组统计,然后使用 plot 函数将结果绘制出来。
第二个代码块绘制了各个国家电影数量的柱状图,其中使用了 value_counts 函数对国家进行统计,然后使用 bar 函数将结果绘制出来。
第三个代码块绘制了电影主要类型分布的饼图,其中使用了 value_counts 函数对电影类型进行统计,然后使用 pie 函数将结果绘制出来。
第四个代码块绘制了排名与评价人数的散点图,其中使用了 scatter 函数将排名和评价人数进行散点绘制。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)