Select to view content in your preferred language

Symbology on null value

9348
16
05-26-2012 11:59 AM
JimO_Leary
Deactivated User
I am trying to symbolize a layer on Quantities -> Natural Breaks -> Jenks. There are some null values in the column that I'm using for the symbolization, and that causes those features to disappear from the map when symbolized. Is there a way that I can set a default value for the column so that this will not happen?

Thanks
Tags (2)
0 Kudos
16 Replies
TimWitt
Deactivated User
Sarah,

you can't calculate fields that have been joined to data. You would need to do the calculate before you join it to data. Maybe that is your problem? Remove the join and then you should be able to calculate.
0 Kudos
SarahHolmes
Emerging Contributor
But the data is IN the join. The data is in the table I am joining to. So that doesn't work.
0 Kudos
SarahHolmes
Emerging Contributor
Okay I found a way to make it work... although I still think there should be an easier way. I created a new field and used Field Calculator to define the values from the column I was working with. However, if I just did them all at once, all the <NULL> values became zero which I couldn't have but I also couldn't define them as No Data because it's a number field and won't accept text. So first I used FC to make all the <NULL> values a value outside my existing range of values, then calculate the rest of the values normally. Then I classified the values to that the new, outside value was in a class on its own and I changed the label to "No Data". I think this is harder than it should be but at least it works I suppose. However my issue now is that, because I had to use a higher value than the rest, "No Data" appears on TOP of the rest of the values in the legend where I think it should be at the bottom, under 0.
0 Kudos
Zeke
by
Honored Contributor
You can change the order symbols display in the legend using the up/down arrows on the symbology tab.

I don't understand what the problem is with calculating the field before the join (couldn't you calculate it in the table first, using Excel or similar?), but in any case, once you've joined the table you can then export the whole thing to a new feature class and use that. FC will work on that.
0 Kudos
RichardFairhurst
MVP Alum
Okay I found a way to make it work... although I still think there should be an easier way. I created a new field and used Field Calculator to define the values from the column I was working with. However, if I just did them all at once, all the <NULL> values became zero which I couldn't have but I also couldn't define them as No Data because it's a number field and won't accept text. So first I used FC to make all the <NULL> values a value outside my existing range of values, then calculate the rest of the values normally. Then I classified the values to that the new, outside value was in a class on its own and I changed the label to "No Data". I think this is harder than it should be but at least it works I suppose. However my issue now is that, because I had to use a higher value than the rest, "No Data" appears on TOP of the rest of the values in the legend where I think it should be at the bottom, under 0.


On your earlier issue, I suspected you had a join involved.  Null values are created 2 ways with joins.  First, if no record in the joined table matches the table it is joined to, then the entire record is Null.  This is the only way joined data can appear when it has no matching value and the only way to overcome it is to add a record to the joined table that matches the join field value, or remove those records from the primary table.  The second occurs when a record match between tables exists in the join field, but the field you are using to symbolize has a Null value.  In this case you must directly open the table that you intend to make a join table outside of the join all by itself.  Then you can calculate the values in the original table and when the table is joined the values will not be null anymore.  Bottom line is that in both cases you have to edit the original table you intend to join to both ensure a complete record match and complete field data before creating a join.

Your solution is fine and actually not that difficult or involved compared to most problem solving in GIS.  You got off easy.  Get used to the feeling that there should be an easier way and finding out there isn't with this software.  That is the norm.

Anyway, as far as the number sorting, what is wrong with using -1 (or some other negative number) as a value for the Nulls?  That would make the no- data values appear at the bottom of your list.
0 Kudos
SarahHolmes
Emerging Contributor
Richard,

I am aware of how and way NULL values appear and that what you suggested is how to removed them. But technically I don't want to removed them, I want to map them. And I can't alter the attribute table to make the NULLS zero because I have zero values which I need to keep separate. So basically what everyone is saying is that you cannot make <Null> values display in the symbology?
Okay well at least I have my work-around way. Negative values! Brilliant! Thank you; I had not even considered negatives!
0 Kudos
SarahHolmes
Emerging Contributor
You can change the order symbols display in the legend using the up/down arrows on the symbology tab.

I don't understand what the problem is with calculating the field before the join (couldn't you calculate it in the table first, using Excel or similar?), but in any case, once you've joined the table you can then export the whole thing to a new feature class and use that. FC will work on that.


Greg,

Changing the order in the legend doesn't apply here as I am talking about classifications of one layer.

Okay, I understand now what you meant about calculating before I join and yes that would work but I am stiff miffed as to what I would defined them as because I want them to be No Data (which you can't do in a number field).
0 Kudos