繁体   English   中英

matplotlib中的气泡图或热图

[英]Bubble plot or Heatmap in matplotlib

我正在尝试绘制可动态调整大小的气泡(散点图)。 当我尝试使用随机数据进行绘图时,我可以很好地进行绘图。 但是,当我尝试解析输入文件时,我无法绘图。

输入:

Nos,Place,Way,Name,00:00:00,12:00:00
123,London,Air,Apollo,342,972
123,London,Rail,Beta,2352,342
123,Paris,Bus,Beta,545,353
345,Paris,Bus,Rava,652,974
345,Rome,Bus,Rava,2325,56
345,London,Air,Rava,2532,9853
567,Paris,Air,Apollo,545,544
567,Rome,Rail,Apollo,5454,5
876,Japan,Rail,Apollo,644,54
876,Japan,Bus,Beta,45,57

程序:

import pandas as pd
from pandas import DataFrame
import pandas.io.data
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns


df=pd.read_csv('text_2.csv')


#SIZE OF BUBBLES CHANGES

fig = plt.figure()

ax = fig.add_subplot(1,1,1)

ax.scatter(df['Place'],df['Name'], s=df['00:00:00']) # Added third variable income as size of the bubble


plt.show()

我正在尝试将Place作为x axis ,将Name作为y axis并将Sizecount(00:00) 泡沫很大,周围找不到很多例子。 任何有价值的建议都是适当的。 提前致谢。 为什么在(00:00)列出现错误,如何传递该列的值?

错误:

    Traceback (most recent call last):
  File "Bubble_plot.py", line 18, in <module>
    ax.scatter(df['Place'],df['Name'], s=df['00:00:00']) # Added third variable income as size of the bubble
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 6266, in scatter
    x, y, s, c = cbook.delete_masked_points(x, y, s, c)
  File "/usr/lib/pymodules/python2.7/matplotlib/cbook.py", line 1774, in delete_masked_points
    raise ValueError("First argument must be a sequence")
ValueError: First argument must be a sequence

我希望通过将“名称”和“位置”更改为分类项可能会起作用,但是在那里没有任何运气(无论是情节还是自然的)。 如果将它们转换为整数,则基本上可以使用,但随后丢失了字符串或类别标签。 FWIW:

df2 = df.copy()
for c in ['Place','Name']:
    df2[c] = df2[c].astype('category').cat.codes

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(df2['Place'],df2['Name'], s=df2['00:00:00'])

在此处输入图片说明

也许热图会更好? 它似乎可以接受分类,因此您可以免费获得标签。

df3 = df.copy()
for c in ['Place','Name']:
    df3[c] = df3[c].astype('category')

sns.heatmap( df3.pivot_table( index='Place', columns='Name', values='00:00:00' ) )

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM